这应该是一个简单的问题。使用linux终端我想使用转换在文件夹中裁剪图像并使用sed更改其名称。例如, 下面的一个班轮按照我的预期将图像裁剪到文件夹中:
for file in Screenshot*.png; do convert -crop 1925x1060+10+1 $file newname_$file; done
但是,我想剥离"截图 - "文件名中的字符串。有了sed,我可以使用sed -n' s / Screenshot - // p' :
echo "Screenshot-1.png" | sed -n 's/Screenshot\-//p'
但是如何在上面的for循环中插入sed?
例如,如果我有一个包含这些图像的文件夹:
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
的其他要点编辑:根据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
答案 0 :(得分:3)
我会使用bash的parameter expansion而不是sed
。
示例:
for file in Screenshot.png Screenshot-1.png Screenshot-2.png do_not_crop.png ; do
echo "${file#Screenshot-}"
done
输出:
Screenshot.png
1.png
2.png
do_not_crop.png