Linux 使用Python脚本修改文件名
我的文件夹中有许多文件名为Linux 使用Python脚本修改文件名,linux,bash,python-2.7,Linux,Bash,Python 2.7,我的文件夹中有许多文件名为1.jpg xyz,1.jpg abc,2.jpg qwe等。我特别想将.jpg移到每个图像名称的末尾。我不能手动操作,因为这有几千个。我无法删除当前名称中.jpg之后的xyz等,因为它们有重要信息。所以我唯一的选择就是将.jpg移到末尾。有人能告诉我应该使用什么命令或脚本来执行此操作吗?这应该可以: find *jpg* | while read f ; do g=$(echo "$f" | sed s/\.jpg//) ; echo "mv $f ${g}.jpg"
1.jpg xyz
,1.jpg abc
,2.jpg qwe
等。我特别想将.jpg移到每个图像名称的末尾。我不能手动操作,因为这有几千个。我无法删除当前名称中.jpg之后的xyz等,因为它们有重要信息。所以我唯一的选择就是将.jpg移到末尾。有人能告诉我应该使用什么命令或脚本来执行此操作吗?这应该可以:
find *jpg* | while read f ; do g=$(echo "$f" | sed s/\.jpg//) ; echo "mv $f ${g}.jpg" ; done
如果回送的mv命令与您想要的一样,则移除其周围的回送“”并重新运行。这应该可以:
find *jpg* | while read f ; do g=$(echo "$f" | sed s/\.jpg//) ; echo "mv $f ${g}.jpg" ; done
如果返回的mv命令与您想要的类似,则删除其周围的echo“”,然后重新运行。下面的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
下面的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
为什么要对$(ls*.jpg-*)格式的文件执行
?为什么不用于*.jpg-*
中的文件?为什么用于$(ls*.jpg-*)
?为什么不为*.jpg-*中的文件编写?