Как переименовать кучу файлов с помощью AWK? - PullRequest
0 голосов
/ 16 апреля 2019

Я новичок в Ubuntu, у меня небольшая проблема: у меня много файлов, которые я хочу переименовать в соответствии с каждой строкой текста в другом файле names.txt .И как это сделать с помощью AWK?

Файлы, которые я хочу переименовать

file1.html
file2.html
file3.html
file4.html

Структура файла names.txt

Moscow
Kosice
Warsaw 
Budapest

Окончательный результат

Moscow.html
Kosice.html
Warsaw.html
Budapest.html

Файл names.txt находится в одной папке со всеми другими файлами, которые я хочу переименовать.

1 Ответ

0 голосов
/ 16 апреля 2019

awk может помочь вам получить необходимые команды оболочки, но сделать это просто с помощью awk это не тот способ:

awk 'BEGIN{x=1} {printf "%s.html file%d.html\n", $0, x; x++}' names.txt | xargs -l mv 

Здесь awk обработает файл names.txt и для каждой строкион создает файл% s.html% d.html.В котором% s - это текст, найденный в этой строке в файле, а% d - увеличенное число.

Далее это передается в xargs, который будет вызывать для каждой строки (это то, что делает -l), будет вызывать mv и передавать текст в этой строке в качестве аргументов.

Примечание.Это сломается, если вы хотите переименовать файлы с пробелами.В этом случае вам нужно немного изменить эту строку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...