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

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

Tengo una lista que se parece a esta en un archivo llamado names.txt:

JOHN DOE
JANE DOE
ADAM SMITH
SARAH BROWN
SUSIE JOHNSON

¿Existe algún script que pueda ejecutar en la Terminal y que cree carpetas a partir de cada línea de esta lista?

Respuesta1

Existe una forma sencilla de ejecutar un comando para cada línea de un archivo de texto y no requiere una secuencia de comandos que sería excesiva para un solo comando como mkdir. Utilice el xargscomando como este:

xargs -tI % mkdir % < names.txt

La -Iopción indica xargsque se ejecute un comando para cada línea de STDIN. En este caso, STDIN proviene de la lectura del names.txtarchivo con extensión < names.txt. El %carácter es una cadena de reemplazo que xargsse utiliza como marcador de posición para una línea del archivo. Esto significa que todo lo xargsque se ve %en el comando %se reemplaza por una línea del archivo.

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

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

mkdir JUAN 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.

información relacionada