【问题标题】:Linux rename time stamped file [closed]Linux重命名时间戳文件[关闭]
【发布时间】:2016-05-06 10:01:04
【问题描述】:

我有一些带有时间戳 (XXX_20160125-17.dmp) 的文件,我想重命名为 XXX_20160124.dmp(-1 天,并且只有 YYYYMMDD)。 我尝试了一些东西,但没有用。谢谢。

【问题讨论】:

  • 欢迎来到本站!你尝试了什么?此外,请查看stackoverflow.com/tour 的导览,了解有关以吸引高质量答案的方式提问的更多信息。

标签: 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。

【讨论】:

  • 像魅力一样工作,非常感谢 PBI!
  • 请勾选正确答案
猜你喜欢
  • 2012-07-20
  • 2013-12-17
  • 2014-09-14
  • 2022-08-11
  • 1970-01-01
  • 2015-02-04
  • 2014-12-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多