linux下重命名文件名

linux下重命名文件名

我需要一次重命名 3028 个文件的名称。你有什么帮助吗?

0001____z1.0.tif    -->  0001.tif
0002____z2.0.tif    -->  0002.tif
   .
   .
   .

3028____z3028.0.tif --> 3028.tif

我可以____z2.0.tif使用 Linux 的“重命名”选项一次重命名“”所有文件吗?或者其他方式....?如果您有任何想法,请告诉我。那就感激不尽了...

答案1

使用 perlrenameprename

rename 's/_.*/.tif/' *.tif

答案2

尽管已经有了答案,但我相信只用 shell 就可以完成这个任务。

重击:

大括号之间的表达式称为大括号扩展

for fn in {1..3028}; do
    mv "$(printf "%04d\n" "${i}")____z${i}.0.tif" "${i}.tif"
done

POSIX:

i=0

while [ "${i}" -le 3028 ]; do
    mv "$(printf "%04d\n" "${i}")____z${i}.0.tif" "${i}.tif"
    i=$((i + i))
done

您可能需要更改到文件所在的目录或将其路径名添加到命令的参数中mv。例如,如果文件位于/tmp

mv "/tmp/$(printf "%04d\n" "${i}")____z${i}.0.tif" "/tmp/${i}.tif"

相关内容