sur*_*ana 8 command-line batch-rename
我在通过用旧名称的前 10 个字符替换名称来重命名多个文件时遇到问题。我试图在互联网上找到解决方案,但没有找到答案。
例子:
原始文件名:
1208605001abAcd.jpg
1201230111FbcAdee.jpg
11512345714x611aaa.jpg
Run Code Online (Sandbox Code Playgroud)
我想要达到的目标:
1208605001.jpg
1201230111.jpg
1151234571.jpg
Run Code Online (Sandbox Code Playgroud)
mur*_*uru 16
你可以试试:
rename -n 's/(.{10}).*(\.jpg)$/$1$2/' *.jpg
Run Code Online (Sandbox Code Playgroud)
例子:
$ rename -n 's/(.{10}).*(\.jpg)$/$1$2/' *.jpg
11512345714x611aaa.jpg -> 1151234571.jpg
1201230111FbcAdee.jpg -> 1201230111.jpg
1208605001abAcd.jpg -> 1208605001.jpg
Run Code Online (Sandbox Code Playgroud)
该-n选项仅模拟命令,以便您可以验证更改。在没有它的情况下运行以实际进行更改。
正则表达式(.{10}).*(\.jpg)包括:
.{10}- 任何 10 个字符,在一个组中(…),然后是.* - 任意数量的任意字符后跟\.jpg$-$文件名末尾 ( )的扩展名,在第二组中替换$1$2只是第一组,然后是第二组。
您只能使用 bash:
for FILE in *.jpg ; do mv "${FILE}" "${FILE:0:10}.jpg" ; done
Run Code Online (Sandbox Code Playgroud)
通过一些工作,您可以获得文件扩展名并自动添加到新名称。