【问题标题】:Linux rename time stamped file [closed]Linux重命名时间戳文件[关闭]
【发布时间】:2016-05-06 10:01:04
【问题描述】:
我有一些带有时间戳 (XXX_20160125-17.dmp) 的文件,我想重命名为 XXX_20160124.dmp(-1 天,并且只有 YYYYMMDD)。
我尝试了一些东西,但没有用。谢谢。
【问题讨论】:
标签:
linux
bash
timestamp
rename
【解决方案1】:
ls *.dmp |
perl -lne '
m/(.*_)(\d\d\d\d)(\d\d)(\d\d).*(\.dmp)/;
chomp($d = qx(date -d"$2-$3-$4 - 1 day" +%Y%m%d));
#rename $_, "$1$d$5" or die "rename $_ -> $1$d$5: $!\n";
print "mv $_ $1$d$5";
'
这会生成如下命令:
mv XXX_20160101-19.dmp XXX_20151231.dmp
mv XXX_20160125-17.dmp XXX_20160124.dmp
假设文件名没有空格,您可以将结果通过管道传输到 bash。
或者取消注释 perl 脚本中的 'rename' stmt。