【问题标题】:Renaming file names in Linux with listing使用列表重命名 Linux 中的文件名
【发布时间】:2017-12-30 15:10:21
【问题描述】:

我想重命名一个目录中的所有文件文件名是 1.ABC, 2.ABC, 3.ABC 等等 我想把它们重命名为 1.abc , 2.abc , 3.abc ....以此类推。

我试过了

 ls -1 *.ABC| xargs -I{}  mv {}  ${{}/ABC/abc}

但这似乎不起作用,因为

bash: ${{}/ABC/abc}: bad substitution.

我也尝试了重命名命令,但它似乎没有在我的系统上运行:

rename 's/\.ABC$/.abc/' *.ABC

没有给我任何结果。如果可以纠正,我想坚持我尝试的第一种方法。

【问题讨论】:

标签: linux bash rename


【解决方案1】:

如果您有 rename 实用程序,那么您可以这样做:

rename 's/ABC/abc/' *.ABC

否则你可以使用这个简单的for循环:

for file in *.ABC; do
   mv "$file" "${file/.*/.abc}"
done

【讨论】:

  • 它做到了,感谢 anubhava,我实际上知道这个方法。我实际上是在我的第一种方法ls -1 *.ABC| xargs -I{} mv {} ${{}/ABC/abc} 中寻找更正,但我认为它只能在您想在重命名时附加文件名时使用,而不是当您想从新文件名中替换或删除字符串的某些部分时使用在ls -1 *.ABC| xargs -I{} mv {} {}_bkp
  • 一般来说,应该避免解析ls的输出
猜你喜欢
  • 1970-01-01
  • 2015-03-21
  • 2019-06-12
  • 2021-08-20
  • 1970-01-01
  • 2014-02-22
  • 2011-10-02
  • 1970-01-01
  • 2020-11-23
相关资源
最近更新 更多