¿Cómo crear automáticamente carpetas de una lista en Mac OS X?

0

Tengo una lista que se ve así en un archivo llamado names.txt:

JOHN DOE
JANE DOE
ADAM SMITH
SARAH BROWN
SUSIE JOHNSON

¿Hay un script que pueda ejecutar en la Terminal que creará carpetas de cada línea en esta lista?

Corey
fuente
3
Lo sentimos, pero este no es un servicio de escritura de guiones. Podemos ayudarlo con un problema específico en el que está atascado. Cuéntanos qué has hecho hasta ahora y cuáles fueron los resultados.
Tetsujin
1
Tenga en cuenta que superuser.com no es un servicio gratuito de escritura de script / código. Si nos dice lo que ha intentado hasta ahora (incluya los scripts / código que ya está usando) y dónde está atascado, entonces podemos intentar ayudarlo con problemas específicos. También deberías leer ¿Cómo hago una buena pregunta? .
DavidPostill
2
No estoy seguro de por qué percibes la pregunta tan mal, más bien se trata de un simple script de 1 LOC
Arefe

Respuestas:

6

Hay una manera fácil de ejecutar un comando para cada línea de un archivo de texto, y no requiere un script que sería excesivo para un solo comando como mkdir. Use el xargscomando así:

xargs -tI % mkdir % < names.txt

La -Iopción le dice xargsque ejecute un comando para cada línea desde STDIN. En este caso, STDIN viene de leer el names.txtarchivo con < names.txt. El %carácter es una cadena de reemplazo que xargsutiliza como marcador de posición para una línea del archivo. Esto significa que en todas partes xargsve %en el comando, %se reemplaza por una línea del archivo.

La -topción hace xargsque se imprima cada comando antes de que se ejecute. No es necesario, pero puede ser útil para problemas más complicados.

Cuando se xargsejecuta con el archivo de muestra, el resultado se ve así:

mkdir JOHN DOE
mkdir JANE DOE
mkdir ADAM SMITH
mkdir SARAH BROWN
mkdir SUSIE JOHNSON

y los mkdircomandos crean una nueva carpeta con los nombres del names.txtarchivo.

Creidhne
fuente
Respuesta muy útil
Arefe