重命名大量文件

重命名大量文件

我怎样才能按照以下模式重命名所有文件:

thumb_f318d8a580ca5717d686a323b6c2ca0d.jpg0000777
thumb_f18d8aup90ca5717d686a323b6c2c5uh.jpg0000777
thumb_jessr8d8a580ca5717d68623etrtckks.jpg0000777
thumb_4hghd8a580ca5717d686a323b6c2ghjj.jpg0000777
....

thumb_f318d8a580ca5717d686a323b6c2ca0d.jpg
thumb_f18d8aup90ca5717d686a323b6c2c5uh.jpg
thumb_jer8d8a580ca5717d686a323etrtckks.jpg
thumb_4hghd8a580ca5717d686a323b6c2ghjj.jpg
....

答案1

使用 bash 变量和 for 循环:
for i in *;do mv $i ${i%0000777};done

当您用 {} 括住变量名并添加 % 符号时,它会返回变量的值,其中 % 后的所有内容都会被删除。

如果使用 # 符号,它将从字符串的开头删除。因此
for i in *;do mv $i ${i#thumb_};done
会从前面去掉 thumb_。

答案2

使用改名脚本。假设它们都以“0000777”结尾:

rename -nv 's,0000777$,,' *

如果输出是您想要的,请删除参数-n以使其实际重命名。

答案3

您没有提到操作系统,但根据您使用的标签,我假设是 *nix。

但是,如果您使用的是 Windows 常规 CMD 提示符:

ren *.jpg0000777 *.jpg

或 powershell:

Get-ChildItem *.jpg0000777 | Rename-Item -NewName {  $_.Name -replace ".jpg0000777",".jpg"  }

相关内容