Как я могу пакетно переименовать набор имен файлов в Linux?


9

У меня есть папка с изображениями с именем:

pic001-2.png
pic002-2.png
pic003-2.png 

Как мне переименовать их в следующее?

pic001.png
pic002.png
pic003.png 

Я пытался, mv "pic*-2.png" "pic*.png"но продолжаю получать ошибки.

Ответы:


11

Это удалит первый -2найденный в каждом имени файла:

for f in pic*-2.png; do
  mv "$f" "${f/-2/}"
done

Чтобы проверить это, просто подготовьтесь echoк mvлинии.


9

Вам нужна команда с соответствующим названием "rename"!

Попробуйте что-то вроде этого:

rename 's/(pic\d+)-\d\.jpg/$1.jpg/' pic*.jpg

Он принимает регулярное выражение perl в качестве первого аргумента, поэтому ваши параметры сопоставления с образцом и манипулирования довольно обширны. Смотрите man-страницу переименования (1) для более подробной информации.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.