所以我有一系列的文件,格式如下,它们的真实文件名后面跟着日期。
file_1_12DEC2011.pdf
file_2_12DEC2011.pdf
file_3_12DEC2011.pdf
file_4_12DEC2011.pdf
file_5_12DEC2011.pdf我想知道怎样才能让每一天都增加一天。例如,这将是我想要的结果。
file_1_13DEC2011.pdf
file_2_13DEC2011.pdf
file_3_13DEC2011.pdf
file_4_13DEC2011.pdf
file_5_13DEC2011.pdf发布于 2012-02-12 11:33:27
为了安全起见,在mv之前先使用echo
for i in file_[1-5]_12DEC2011.pdf; do
mv $i ${i/12/13}
done要快速完成此操作,请使用rename命令:
$ rename 's/12/13/' file_[1-5]_12DEC2011.pdf更新:您可以使用awk生成新的文件名,并将其放入上面的命令中。
for i in *_*.pdf; do
mv $i `echo $i | awk -F_ -v OFS=_ '{sub(/[0-9]+/, $NF+1, $NF)}1'`
done发布于 2012-02-13 10:13:54
Yoy可以尝试这个.BATch文件:
@echo off
setlocal EnableDelayedExpansion
for %%f in (*.pdf) do (
set name=%%~Nf
set day=!name:~-9,2!
set /A day=1!day! %% 100 + 1
if !day! lss 10 set day=0!day!
ECHO ren %%f !name:~0,-9!!day!!name:~-7!
)测试该文件,如果结果为OK,则删除ren命令中的ECHO部分。
此文件应适用于任何名称和任何数字,只要文件名的最后9个字符是上述DDMMMYYYY格式的日期即可。
https://stackoverflow.com/questions/9246112
复制相似问题