【问题标题】:Linux rename command but for dynamic values [closed]Linux重命名命令但用于动态值[关闭]
【发布时间】:2015-11-17 15:30:38
【问题描述】:

我在 Linux 服务器上有文件,例如:

2103acc.001.lob
2507acc.002.lob
2222acc.021.lob
1210acc.051.lob

我想把它们改成:

2103acc.pdf
2507acc.pdf
2222acc.pdf
1210acc.pdf

我做不到

rename .001.lob .pdf *.lob

因为那些是动态数

有人可以给我写下解决方案吗? 谢谢

【问题讨论】:

    标签: linux rename filenames


    【解决方案1】:

    此正则表达式应删除数字后跟 .lob 并替换为 .pdf:

    rename -n -v 's/\.[0-9]+\.lob$/\.pdf/' *.lob
    

    一旦你确信你有正确的模式,只需删除 -n(试运行)并让它正常运行:

    rename  -v 's/\.[0-9]+\.lob$/\.pdf/' *.lob
    

    【讨论】:

      【解决方案2】:

      Ixer 在他的回答中错过了*,所以我添加了它:

      rename -n -v 's/\.[0-9]*\.lob$/\.pdf/' *.lob

      【讨论】:

      • 我有文件 240815acc.001.lob 并且在命令执行后文件仍然是 240815acc.001.lob
      • 您需要删除-n,因为它只显示哪些文件被更改并且不执行命令。
      • 您好 rename -v 's/\.[0-9]*\.lob$/\.pdf/' *.lob 仍然无法正常工作
      • 如何调试问题?
      • 你有和我一样的输出i.imgur.com/xFALLdW.png 吗?是否有消息说文件已重命名?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-05
      • 2012-12-28
      • 1970-01-01
      • 1970-01-01
      • 2018-01-10
      • 1970-01-01
      • 2012-07-20
      相关资源
      最近更新 更多