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-*中的文件编写