Unix Bash переименование файлов с помощью регулярных выражений

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

Это мое мнение, оно должно выглядеть так:

mv -v ./images/*.png ./test/*test.png, но он не работает.

может кто-нибудь предложить мне решение?

29
задан dlamblin
17.04.2023 7:27 Количество просмотров материала 3506
Распечатать страницу

3 ответа

мне также нравится команда rename, которую опубликовал Джон т, но она доступна не во всех системах. Это должно работать везде:

for i in *.png; do mv -v $i `basename $i .png`.test.png; done
6
отвечен Hal Pomeranz 2023-04-18 15:15

есть удобный скрипт переименования файлов perl, который устанавливается с основным пакетом Perl в системах на базе Debian (включая Ubuntu). Его обычно называют rename, но иногда называется prename (Perl переименовать). Используйте следующим образом:

rename expr file1 file2 file3

команда использует Perl для вычисления expr для каждого file аргумент, и он переименовывает каждый файл в вывод expr нарушений. Итак, для простых замен регулярных выражений, таких как ваш пример:

rename 's(images/(.*)\.png$)(test/.test.png)' ./images/*

# here's the expression:
# s()()   -- just like s/// (but i don't need to escape the / in the filename)
#   match regex:  images/(.*)\.png$     -- match filenames of the form images/*.png
#   replace:      test/.test.png     -- turn them into test/*.test.png

если файлы не совпадение с выражением (например, не PNG-файлы), подстановка ничего не сделает и их имена файлов не будут изменены.

7
отвечен quack quixote 2023-04-18 17:32

можно использовать rename, который принимает регулярные выражения или основной синтаксис 3 аргументов:

rename .png .test.png *.png
  • первый аргумент - что заменить в имени файла
  • второй аргумент-что заменить на
  • третий аргумент - какие файлы выполнять операцию над, в данном случае, всеми png.
2
отвечен John T 2023-04-18 19:49

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх