-1

У меня есть список, который выглядит следующим образом в файле names.txt:

JOHN DOE
JANE DOE
ADAM SMITH
SARAH BROWN
SUSIE JOHNSON

Есть ли скрипт, который я могу запустить в Терминале, который будет создавать папки из каждой строки в этом списке?

1 ответ1

6

Существует простой способ выполнить команду для каждой строки текстового файла, и для этого не требуется скрипт, который был бы излишним для одной команды, такой как mkdir . Используйте команду xargs следующим образом:

xargs -tI % mkdir % < names.txt

Опция -I указывает xargs запускать команду для каждой строки из STDIN . В этом случае STDIN происходит от чтения файла names.txt с < names.txt . Символ % - это замещающая строка, которую xargs использует в качестве заполнителя для строки из файла. Это означает, что везде, где xargs видит % в команде, % заменяется строкой из файла.

Опция -t заставляет xargs печатать каждую команду перед ее выполнением. Это не обязательно, но может быть полезно для более сложных проблем.

Когда xargs запускается с файлом примера, выходные данные выглядят так:

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

и команды mkdir создают новую папку с именами из файла names.txt .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .