Yani dizinde virgülle ayrılmış dizin isimleri listesi istiyorsunuz Bu yapılabilir.
Shell + coreutils
Herkes oneliner yayınladığı için, işte benimki de (mkdir + parametre değiştirme artı + kabuk yönlendirme).
DIR:/testdir
skolodya@ubuntu:$ ls
DIR:/testdir
skolodya@ubuntu:$ mkdir $( tr '[,\n]' ' ' < /home/xieerqi/dirList.txt )
DIR:/testdir
skolodya@ubuntu:$ ls
dirFive/ dirfour/ dirone/ dirthree/ dirtwo/
AWK
AWK bir metin işleme dilidir, ancak system()varsayılan kabuğu çağıracak ve parantez içine alınmış [s] komutunu çalıştıracak çok güzel bir işlevi vardır (bir dize olmalıdır).
DIR:/xieerqi
skolodya@ubuntu:$ awk -F ',' '{for(i=1;i<=NF;i++) system("mkdir "$i)}' dirList.txt
DIR:/xieerqi
skolodya@ubuntu:$ ls -ld dir*
-rw-rw-r-- 1 xieerqi xieerqi 23 Feb 9 11:41 dirList.txt
drwxrwxr-x 2 xieerqi xieerqi 4096 Feb 9 11:42 dirone/
drwxrwxr-x 2 xieerqi xieerqi 4096 Feb 9 11:42 dirthree/
drwxrwxr-x 2 xieerqi xieerqi 4096 Feb 9 11:42 dirtwo/
DIR:/xieerqi
skolodya@ubuntu:$ cat dirList.txt
dirone,dirtwo,dirthree
Ya ,da gsub()işlevini kaldırabilir ve çağırabilir system("mkdir "$0)ancak adlarında boşluk içeren dizinler oluşturmak istiyorsanız sorun olabilir.
piton
Aynı şeyi yapmanın Pythonic yolu, her satırı okumak \n, izlemekten kurtulmak, her şeyi tek bir listeye sürmek ve liste öğeleri üzerinde yineleme yapmak ve liste öğesi başına dizin oluşturmak olacaktır. Aşağıdaki örnekte, dosyama /home/xieerqi/dirList.txtverilen tam yol olduğunu ve her yeni dizinin tam yolunu dizeye /home/username/ve listeden okunan dir adı birleştirerek oluşturduğumuza dikkat edin. Gerektiği gibi kendi değerlerinizi değiştirin
DIR:/testdir
skolodya@ubuntu:$ ls
DIR:/testdir
skolodya@ubuntu:$ /home/xieerqi/makeDirs.py
DIR:/testdir
skolodya@ubuntu:$ ls
dirFive/ dirfour/ dirone/ dirthree/ dirtwo/
DIR:/testdir
skolodya@ubuntu:$ cat /home/xieerqi/makeDirs.py
#!/usr/bin/env python
import os
with open("/home/xieerqi/dirList.txt") as file:
for line in file:
for directory in line.strip().rsplit(','):
path = '/home/xieerqi/testdir/' + directory
os.makedirs(path)
man mkdir....