Пакетное переименование в OSX, добавьте @2x ко всем файлам, заканчивающимся на .png

Я хотел бы переименовать свои изображения с .png на @2x.png. Есть ли простой способ сделать это с терминалом?

Ответ 1

С помощью ответа Марка Сетчелла я смог решить это с помощью следующего однострочного:

for f in *.png; do NEW=${f%.png}@2x.png; mv ${f} "${NEW}"; done;

Изменить: flopr был прав, теперь нужно работать

Ответ 2

Позвольте мне добавить что-то к этому вкладу. Более общий, множественный формат (jpg, png,..) и имя "расширение бесплатно" (шаблон <name> @2x. <extension> ) одно выровненное решение будет следующим:

for file in *; do mv "$file" "${file%.*}@2x.${file##*.}"; done

Это работает как шарм. Надеюсь, что это поможет.

Ответ 3

Это должно сделать это:

#!/bin/bash
ls *.png | while read f
do
    BASE=${f%.png}          # Strip ".png" off end
    NEW=${BASE}@2x.png      # Add in @2
    echo mv "$f" "${NEW}"   # Rename
done

Сохраните его в файле Add2x, затем введите:

chmod +x Add2x
./Add2x

Когда вы увидели, что он собирается сделать, удалите слово "эхо", чтобы он действительно это сделал.

Ответ 4

A Рекурсивный один лайнер, который я использую:

find -L . -type f -name "*.png" -exec bash -c 'echo "$0" "${0%.*}@2x.png"' {} \;

-L для обработки символических ссылок... Тип f предназначен только для поиска файлов

Поменяйте 'echo' на 'mv', если вы довольны тем, что будет делать команда.

Ответ 5

На самом деле, есть более простой способ, используя инструмент Perl rename...

rename 's/(.+)\.png/$1\@2x.png/i' *.png

Это говорит... "Замените один или несколько символов, за которыми следует .png теми же символами и @2x.png. Сделайте это без учета регистра (i) для всех файлов PNG."

Инструмент rename легко устанавливается с помощью homebrew с помощью brew install rename.