У меня есть папка с изображениями с именем:
pic001-2.png
pic002-2.png
pic003-2.png
Как мне переименовать их в следующее?
pic001.png
pic002.png
pic003.png
Я пробовал mv "pic*-2.png" "pic*.png"
но продолжаю получать ошибки.
Это удалит первые -2
найденные в каждом имени файла:
for f in pic*-2.png; do
mv "$f" "${f/-2/}"
done
Чтобы проверить это, просто добавьте echo
к строке mv
.
Вам нужна команда с соответствующим названием «rename»!
Попробуйте что-то вроде этого:
rename 's/(pic\d+)-\d\.jpg/$1.jpg/' pic*.jpg
Он принимает регулярное выражение perl в качестве первого аргумента, поэтому ваши параметры сопоставления с образцом и манипулирования довольно обширны. Смотрите man-страницу переименования (1) для более подробной информации.