批量重命名文件名的特定数字
问题描述:
我有很多要重命名的文件。下面是例子:批量重命名文件名的特定数字
D801040001 ---> D801041401 /
D801040002 ---> D801041402 /
O010900001 ---> O010914001 /
O010900002 ---> O010914002
对于D8文件,我只是想改变第7和第8位数字为'14'。 对于O0文件,第6和第7位也是'14'。
我的问题是,我不知道如何使用脚本重命名文件。
谢谢。
答
您可以使用:
的情况下1:
rename 's/^(D8.{4})..(.*)$/${1}14${2}/' D8*
的情况下2:
rename 's/^(O0.{3})..(.*)$/${1}14${2}/' O0*
答
这里使用bash
另一种方式:
案例1:
for file in D*; do mv "$file" "${file/#D8010400/D8010414}"; done
情况2:
for file in O*; do mv "$file" "${file/#O010900/O010914}"; done
说明:的$string
${string/#substring/replacement}
如果$substring
匹配前端,替换为$replacement
$substring
。
${string/%substring/replacement}
如果$substring
的$string
结束比赛回来,替换为$replacement
$substring
。
主席先生,你能否为这些案件做精心设计? – user3003001
你有没有尝试过这些命令,并做到了这一点? – anubhava
我尝试过使用cmd,但它说“命令的语法不正确”。 – user3003001