Работа с подстановочными файлами ввода и сохранение вывода в виде <input> + суффикс

Я хочу выполнить пакетную обработку списка входных файлов с подстановочными знаками, а затем вывести их на входное имя файла с добавлением суффикса. Я надеюсь понять этот общий случай.

В частности я бегаю

    convert *.jpg -resize 800x600 ... *-resized.jpeg

Под Fedora21 с ImageMagick 6.6.8 приятно то, что он добавляет суффикс числа, но я стараюсь сохранить исходное имя файла и добавить суффикс. т.е. он выводит * -resized-0.jpeg * -resized-1.jpeg...

Проверено это не представляется возможным, несколько входных и выходных файлов в awk

редактировать: это возможно, или мне нужно написать сценарий?

1 ответ

Решение

Это зависит от того, как вы определяете слово "сценарий". Возможно, это скрипт:

for f in *.jpg
do
    convert "$f" -resize 800x600 ... "${f%.*}"-resized.jpeg
done

но вы можете просто напечатать это в своем терминале. Команда (или любое количество команд) между do и doneget (s) выполняется один раз для каждого файла, который соответствует *.jpg, с $f установить для каждого имени файла. ${f%.*} это форма расширения параметра, которая удаляет расширение имени файла (сопоставление строк .*) с конца (т. е. с правой стороны) $f имя файла.

Наименование выходных файлов .jpeg вместо .jpg это хорошая идея, чтобы предотвратить *.jpg подстановочный знак от их соответствия. Другой подход заключается в записи выходных файлов в другой каталог.

Другие вопросы по тегам