Я использую Mac OS 10.8.4 и хочу сделать несколько пакетных переименований, используя Terminal, который, я думаю, является оболочкой bash. У меня есть большое количество папок с большим количеством файлов. В именах файлов есть слова, общие для других файлов в этой папке, которые я хотел бы обнаружить и удалить (исключая суффикс файла).
Например:
Папка 1 содержит файлы:
blo 123b 2blah 5blah.pdf
blo hazel 124 2blah 5blah.pdf
blo 125 2blah 5blah.pdf
Папка 2 содержит файлы:
534a blee9.pdf
b546 blee9.pdf
back 675 blee9.pdf
И я хочу переименовать их в
Папка 1
123b.pdf
hazel 124.pdf
125.pdf
Папка 2
534a.pdf
b546.pdf
back 675.pdf
У меня есть приложения, которые можно найти и заменить, но они требуют, чтобы я вручную указал, что искать. Но я не буду знать заранее, что это, не глядя вручную. Кроме того, может быть несколько слов для замены.
Поэтому я подумал, что мог бы сделать что-то вроде этого:
for each folder {
list all the filenames > output.txt
use grep, replace all word breaks with carriage returns
sort the list alphabetically
use uniq in some way to detect the words I want to remove, and list them
iteratively remove all these words from the file names
}
Несколько дополнительных соображений: слово может содержать символы, такие как =, -,+ и так далее. Я хочу использовать [пробел] в качестве разделителя слов.
Может кто-нибудь помочь с этим?