
Как можно массово заменить суффикс для многих файлов?
У меня много файлов типа
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
и для других оболочек (вы не указали, какую именно используете).
Обратите внимание, что ваше конкретное решение всегда зависит от данных и вашей цели. Если у вас есть '-' в качестве разделителя между именем и суффиксом, от которого вы хотите избавиться, это путь. Если нет, вы можете немного подстроить расширение параметра.