Это должен быть простой вопрос. Используя терминал linux, я хочу обрезать изображения в папке с помощью convert и изменить их имя с помощью sed. Например, Следующая один лайнер обрезает изображения в папке, как я ожидал:Вставьте sed в один лайнер, чтобы удалить строку из файла
for file in Screenshot*.png; do convert -crop 1925x1060+10+1 $file newname_$file; done
Однако, я хочу, чтобы лишить «Screenshot-» строку из файла. С СЭД я мог бы использовать SED -n 'S/Скриншот - // р':
echo "Screenshot-1.png" | sed -n 's/Screenshot\-//p'
Но как я могу вставить СЕПГ в цикл выше?
Например, если у меня есть папка с этими изображениями:
Screenshot.png Screenshot-1.png Screenshot-2.png do_not_crop.png
Я ожидаю увидеть эти файлы:
Screenshot.png 1.png 2.png do_not_crop.png
Дополнительные точки для кто может сказать мне, как преобразовать screenshot.png в 0.png
Edit: на основе ответа hek2mgl, этот скрипт работает:
for file in Screen*png;
do convert -crop 1925x1060+10+1 $file
$(if [[ "$file" == "Screenshot.png" ]];
then echo "0.png";
else echo "${file#Screenshot-}";
fi);
done
и выходы 0.png