【问题标题】:Unix rename command for one character on filename [closed]文件名上一个字符的Unix重命名命令[关闭]
【发布时间】:2020-12-01 13:26:53
【问题描述】:

我有超过 1,000 个文件,我想在文件名上更改一个字符,例如:GM001001、GM001002、GM001003 等。要重命名为 GX001001、GX001002、GX001003 等...如您所见公分母将是要替换 X 的 M。

【问题讨论】:

  • 抱歉,投票结束,因为 “正在寻求书籍、工具、软件库等的推荐”.... StackOverflow 是致力于帮助解决编程代码问题。您的 Q 可能更适合 Super User,但请阅读他们关于主题问题的帮助部分。并且请先阅读Help On-topicHelp How-to-ask,然后再在此处发布更多问题。祝你好运。
  • 有些系统有一个基于 Perl 的rename(偶尔是prename)命令。您可以写:rename s/GM/GX/ GM[0-9][0-9][0-9][0-9][0-9][0-9] 重命名所有以字母 GM 开头并以六位数开头的文件。另请参阅Usiing sed to mass rename files,其中接受的答案提倡使用rename

标签: linux unix aix


【解决方案1】:

您可以将mvstring replace 结合使用来实现:

for f in $(ls)
do
  mv $f ${f/GM/GX}
done

【讨论】:

  • 请注意,使用for f in $(ls) 通常不是一个好主意。更好的选择是诸如for f in GM[0-9]* 之类的glob,它将正确处理文件名中的空格等(与使用ls 的版本不同)。当然,名称可能很简单,这不是问题。 ls 符号也会列出未以 GM 开头的文件。 [0-9] 位是确保文件名具有正确格式的方向。对于问题中显示的六位数字,使用GM[0-9][0-9][0-9][0-9][0-9][0-9] 会更冗长但更可靠。
  • 完美,效果很好。谢谢!
猜你喜欢
  • 1970-01-01
  • 2015-07-19
  • 2013-12-18
  • 2016-02-14
  • 1970-01-01
  • 2013-10-06
  • 2013-06-22
  • 2012-12-06
  • 1970-01-01
相关资源
最近更新 更多