Как переименовать файлы в подкаталогах? - PullRequest
39 голосов
/ 29 октября 2008

Есть ли способ пакетного переименования файлов в подкаталогах?

Например:

Переименуйте *.html в *.htm в папке, содержащей каталоги и подкаталоги.

Ответы [ 15 ]

0 голосов
/ 07 мая 2016

В Unix вы можете использовать rnm :

rnm -rs '/\.html$/.htm/' -fo -dp -1 *

или

rnm -ns '/n/.htm' -ss '\.html$' -fo -dp -1 *

Пояснение:

  1. -ns: строка имени (новое имя). /n/ - это правило строки имени, которое расширяется до имени файла без расширения.
  2. -ss: строка поиска (регулярное выражение). Ищет файлы с соответствием.
  3. -rs: заменить строку вида /search_regex/replace_part/modifier
  4. -fo: режим только для файлов
  5. -dp: глубина каталога (-1 означает неограниченный).
0 голосов
/ 13 сентября 2014

В Windows вы можете найти простое C # переименователь файлов с открытым исходным кодом приложение в https://filerenamer.codeplex.com работает с простым файлом Excel . Дайте приложению файл Excel с двумя столбцами источника и назначения, и все готово.

0 голосов
/ 29 октября 2008

В Windows Переименование отлично справляется с этой задачей. Бесплатная, но не с открытым исходным кодом.

0 голосов
/ 29 октября 2008

Для Windows я создал удобное решение для VBScript, написанное на маленьких языках с переименованием на основе регулярных выражений и поддержкой Drag & Drop. Попробуйте, если хотите - поместите его в файл VBS и поместите в него папку в Проводнике.

0 голосов
/ 29 октября 2008

AWK в Linux. Для первого каталога это ваш ответ ... Экстраполируйте, рекурсивно вызывая awk в dir_path, возможно, написав другой awk, который пишет этот точный awk ниже ... и т. Д.

ls dir_path/. | awk -F"." '{print "mv file_name/"$0" dir_path/"$1".new_extension"}' |csh
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...