所以我有一系列具有以下格式的文件他们的真实文件名后跟日期。
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
答案 0 :(得分:1)
要echo
之前mv
安全地执行此操作:
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
答案 1 :(得分:1)
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!
)
测试文件,如果结果正常,则在ren命令中删除ECHO部分。
此文件可以使用任何名称和任何数字,只要文件名的最后9个字符是DDMMMYYYY格式的日期,如上所示。