我的文件夹中有很多文件,名称为1.jpg-xyz
,1.jpg-abc
,2.jpg-qwe
等。我特别想将.jpg移到每个图片名称的末尾。我无法手动完成,因为这些数量是数千。由于他们有重要信息,因此我无法在当前名称中的 .jpg 之后删除 xyz 等。因此,我唯一的选择是将 .jpg 转移到结束。有人可以告诉我应该用什么命令或脚本来做这件事吗?
答案 0 :(得分:0)
这应该有效:
find *jpg* | while read f ; do g=$(echo "$f" | sed s/\.jpg//) ; echo "mv $f ${g}.jpg" ; done
如果回显的mv命令看起来像你想要的那样,那么删除回声""围绕它并重新运行。
答案 1 :(得分:0)
以下bash代码将列出所有带.jpg的文件,并将它们移至-.jpg
re='([^.]+)\.jpg(-.*)'
for file in *.jpg-*
do
if [[ $file =~ $re ]]
then
mv $file "${BASH_REMATCH[1]}${BASH_REMATCH[2]}.jpg"
fi
done