Переименование файлов .txt со строкой, содержащейся в файле - PullRequest
1 голос
/ 24 марта 2020

У меня есть папка с файлами .txt, каждый из которых содержит 1 строку текста. Файлы называются так:

file_1.txt
file_2.txt
file_3.txt
file_4.txt

В каждом файле есть строка текста с текстовой расшифровкой соответствующего аудиофайла плюс имя аудиофайла в скобках, например:

Some text here (31ca4d158eaef166c37a_18.87_27.76)

Для каждого файла мне нужно переименовать его в строку содержится в скобках в файле. Я смог извлечь строку в скобках, используя следующий код:

awk -F'[()]' '{print $2}' file_*.txt

Это дает мне список всех строк, содержащихся в скобках в каждом файле .txt, но я не смог использовать эта информация для переименования всех файлов. Любая помощь будет принята с благодарностью.

Это было частью многоэтапного процесса, и решения, которые работали для меня, были в основном в awk, но я был бы рад услышать решения, использующие другие языки, особенно если они встроены в Ubuntu 18.04 (моя ОС).

1 Ответ

1 голос
/ 24 марта 2020
for file in file_*.txt;do mv -- "$file" "$(awk -F'[()]' '{print $2}' "$file")";done
...