Удаление чисел и дефисов из имен файлов рекурсивно

С помощью этого нового расширения вы можете это сделать, и есть много других опций.

https://extensions.gnome.org/extension/358/activities-configurator/

[d3 ] Grettings!

1
задан 16 October 2012 в 17:35

2 ответа

Нет необходимости в скрипте, для этого есть один лайнер.

Попробуйте это, чтобы посмотреть, что он делает (не волнуйтесь, это еще не переименовывает ваши файлы, см. ниже):

find root_audio_path -type f -iname '*mp3' -execdir rename --no-act 's/^\.\/[\d\s\-]+/\.\//' '{}' ';'

Удалите --no-act, если он работает. Это действительно переименовывает файлы.

Параметр -execdir в find гарантирует, что rename выполняется в каталоге файлов, поэтому пути файлов всегда начинаются с ./ - для которых мы смотрим в rename.

rename в Ubuntu на самом деле перлы переименовываются, поэтому вы можете использовать там регулярные выражения.

2
ответ дан 25 May 2018 в 05:29
  • 1
    Кажется, что это работает, но не выходит за пределы родительской папки, в которой возникает проблема. – Stephen Provis 16 October 2012 в 21:40
  • 2
    Он работает и для любого количества подпапок. Выводимый вами результат - это файл rename, который запускается в каждом каталоге. Потому что это рабочий каталог всегда ./, это все, что вы видите. Однако файлы переименовываются во всех поддиректорах. – phoibos 16 October 2012 в 22:25

Ниже вы получите путь

echo "wwww/www/mp3/1-1 Song 1.mp3" | sed 's#\(.*/\)\(.*\)#\1#g'
/wwww/www/mp3/

Ниже вы получите файл без пути:

echo "wwww/www/mp3/1-1 Song 1.mp3" | sed 's#\(.*/\)##g'
1-1 Song 1.mp3

Вам понадобится переменная для пути, старые и новые имена файлов. Вы можете получить новое имя файла, используя свой код, и создать исходный и целевой путь, используя эти переменные. Я бы порекомендовал делать сухую работу, где вы эхо целевого добавления в файл. Затем вы можете проверить d

0
ответ дан 25 May 2018 в 05:29

Другие вопросы по тегам:

Похожие вопросы: