Очистка имен файлов в каталоге - PullRequest
1 голос
/ 04 ноября 2010

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

The.Sarah.Jane.Adventures.S04E07.The.Empty.Planet.Part1.WS.PDTV.XviD-BiA. [Sharethefiles.com] .avi The.Sarah.Jane.Adventures.S04E08.The.Empty.Planet.Part2.WS.PDTV.XviD-BiA. [Sharethefiles.com] .avi

Я хочу преобразовать файл в:

Приключения Сары Джейн S04E07 Пустая планета Part1.avi

Приключения Сары Джейн S04E07 Пустая планета Part2.avi

Итак, у меня есть сценарий sed:

sed -e's/\[sharethefiles\.com\]//g; s/WS//g; s/PDTV//g; s/Xvid-BiA//g; s/XviD-BiA//g; s/\.\.//g; s/\./\ /g;'

, ноэто идет с проблемами..(точка) удаляется перед суффиксом (avi), и я не совсем уверен, как заменить его на файлы, являющиеся такими динамичными.Иногда перед суффиксом может быть только один пробел, а иногда нет ни одного, поскольку в сценарии также удаляются двойные точки.

Есть какие-либо идеи относительно исправления проблемы?

Спасибо за любую помощь!

1 Ответ

2 голосов
/ 04 ноября 2010

Возможно, вы захотите преобразовать все периоды в пробелы, а затем передать в команду, которая устанавливает расширение.

Пример (игнорируя другие указанные вами особые случаи):

tr '.' ' ' | sed 's/ \([^ ]*\)$/.\1/'
...