Итак, вы хотите разделить запятыми список имен каталогов? Это можно сделать.
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)
но это может быть проблемой, если вы хотите создать каталоги с пробелами в их имени
питон
Pythonic способ сделать то же самое, состоял бы в том, чтобы прочитать каждую строку, избавиться от конечного \n
, сложить все в один список, итерировать по элементам списка и создавать dirs для каждого элемента списка. Обратите внимание, что в приведенном ниже примере /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
....