Jadi Anda ingin daftar nama direktori yang dipisahkan koma? Itu bisa dilakukan.
Shell + coreutils
Karena semua orang memposting oneliners, ini milik saya juga (mkdir + substitusi parameter plus + redirection shell).
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 adalah bahasa pemrosesan teks, tetapi memiliki system()
fungsi yang sangat bagus yang akan memanggil shell default, dan menjalankan perintah [s] yang dilampirkan dalam tanda kurung (yang harus berupa string).
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
Atau Anda bisa menghapus ,
dengan gsub()
fungsi, dan memanggil system("mkdir "$0)
tetapi itu mungkin menjadi masalah jika Anda ingin membuat direktori dengan spasi di namanya
Python
Cara Pythonic melakukan hal yang sama, akan membaca setiap baris, menyingkirkan tertinggal \n
, mendorong semuanya menjadi satu daftar, dan beralih ke item daftar dan buat dirs per item daftar. Perhatikan bahwa pada contoh di bawah, /home/xieerqi/dirList.txt
adalah path lengkap yang diberikan ke file saya, dan kami membuat path lengkap dari setiap direktori baru dengan menggabungkan string /home/username/
dan nama dir dibaca dari daftar. Ganti nilai-nilai Anda sendiri seperlunya
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
....