【问题标题】:Howto rename bunch of filenames which are calculated [closed]如何重命名计算出的一堆文件名[关闭]
【发布时间】:2020-01-18 17:06:52
【问题描述】:

我想重命名一堆文件名。重命名基于文件名的计算。这意味着实际文件名 + 3600 = 新文件名。 重要的是 pid 文件中的下划线必须保留。

提前致谢!

我的系统是 Debian Stretch。

实际文件名:

134235.error
134235_.pid
134235.tiff


13893.error
13893_.pid
13893.tiff

1.error
1_.pid
1.tiff

重命名为:

137835.error
137835_.pid
137835.tiff


17493.error
17493_.pid
17493.tiff

3601.error
3601_.pid
3601.tiff

【问题讨论】:

标签: bash awk sed find mv


【解决方案1】:
for fname in *; do
   echo mv -- "$fname" "${fname/*[[:digit:]]/$((${fname%%[^[:digit:]]*}+3600))}"
done

如果一切正常,请删除echo

【讨论】:

    【解决方案2】:

    使用 Perl 的独立 rename 命令。一些发行版称之为prename

    rename -n 's/(\d+)(.+)/${\($1+3600)}$2/' *
    

    如果一切正常,请删除-n

    【讨论】:

      猜你喜欢
      • 2020-01-23
      • 2010-11-16
      • 1970-01-01
      • 2014-04-14
      • 1970-01-01
      • 1970-01-01
      • 2020-12-01
      • 2011-01-10
      • 2010-12-10
      相关资源
      最近更新 更多