Отже, ви хочете, щоб список імен каталогів був відокремлений комами? Це можна зробити.
Shell + coreutils
Оскільки всі публікують oneliners, ось і моя (mkdir + заміна параметрів плюс + перенаправлення оболонки).
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 - це мова обробки тексту, але вона має дуже приємну system()
функцію, яка буде викликати оболонку за замовчуванням та виконувати команду [s], вкладену в круглі дужки (яка повинна бути рядком).
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
Або ви могли б видалити ,
з gsub()
функцією, і називають , system("mkdir "$0)
але це може бути проблемою , якщо ви хочете створити каталоги з пробілами в назві
Пітон
Пітонічним способом зробити те саме, було б прочитати кожен рядок, позбутися від трейлінгу \n
, зсунути все в один список, а також переглядати пункти списку та створювати рядки для кожного списку. Зауважте, що в наведеному нижче прикладі /home/xieerqi/dirList.txt
- повний шлях до мого файлу, і ми складаємо повний шлях до кожного нового каталогу, приєднуючись до рядка /home/username/
та імені dir, прочитаного зі списку. Замініть власні цінності за потребою
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
....