Массовое переименование, смена суффикса?

Массовое переименование, смена суффикса?

Как можно массово заменить суффикс для многих файлов?

У меня много файлов типа

  • NameSomthing-min.png
  • NameSomthing1-min.png
  • NameSomthing2-min.png

Я хотел бы изменить их все на

  • NameSomthing.png
  • NameSomthing1.png
  • NameSomthing2.png

т.е. удалить символы -minиз имени. Как мне это сделать?

решение1

Этот скрипт может помочь:

for file in *-min.png; do
    echo mv "$file" "${file%-min.png}.png"
done

Удалите эхо, чтобы фактически выполнить команду.

решение2

Это зависит от вашей оболочки. Я использую zsh, и вот как я это делаю:

for i in *-min.*; do mv $i "${i%-*}.${i#*.}"; done

Я советую вам просмотреть страницу руководства вашей оболочки и ознакомиться с разделом, похожим на «расширение параметров» (как это называется вzshстраница руководства).

Аналогичные решения доступны bashи для других оболочек (вы не указали, какую именно используете).

Обратите внимание, что ваше конкретное решение всегда зависит от данных и вашей цели. Если у вас есть '-' в качестве разделителя между именем и суффиксом, от которого вы хотите избавиться, это путь. Если нет, вы можете немного подстроить расширение параметра.

Связанный контент