¿Entonces quieres una lista de nombres de directorio separados por comas? Eso se puede hacer.
Shell + coreutils
Como todo el mundo publica oneliners, aquí también está el mío (mkdir + sustitución de parámetros más + redirección de 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 es un lenguaje de procesamiento de texto, pero tiene una system()
función muy agradable que llamará al shell predeterminado y ejecutará los comandos entre paréntesis (que deben ser una cadena).
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
O puede eliminar ,
con gsub()
función y llamar, system("mkdir "$0)
pero eso puede ser un problema si desea crear directorios con espacios en su nombre
Pitón
La forma pitónica de hacer lo mismo sería leer cada línea, deshacerse del final \n
, meter todo en una lista e iterar sobre los elementos de la lista y crear directorios por elemento de la lista. Tenga en cuenta que en el ejemplo a continuación, /home/xieerqi/dirList.txt
es la ruta completa dada a mi archivo, y creamos la ruta completa de cada nuevo directorio uniendo una cadena /home/username/
y el nombre del directorio leído de la lista. Sustituya sus propios valores según sea necesario
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
....