【问题标题】:Referring to wildcard characters in mv operationmv操作中引用通配符
【发布时间】:2014-09-03 00:14:23
【问题描述】:

这是我的 bash 代码:

mv ./foo*foo2*foo3*.foo3 ./foo*.foo3

使用mv 命令重命名文件时,如何引用./foo*foo2*foo3*.foo3 中的第二个通配符?

如果这听起来很愚蠢,我很抱歉,但我无法在任何地方找到答案。也许我使用了不正确的术语?如果有,请告诉我。

【问题讨论】:

  • 你不能直接,shell扩展不提供任何这样的功能。寻找名为“重命名”的工具
  • Stack Overflow 上有很多问题已经处理了在一个批次中重命名多个文件;尝试使用“批量重命名”进行搜索。

标签: bash wildcard mv


【解决方案1】:

rename 工具就是为此而生的:

sh$ touch fooAfoo2Bfoo3C.foo3
sh$ rename -v 's|foo.*foo2(.*)foo3.*\.foo3|foo$1.foo3|' *.foo3
#                         ^^^^                ^^
#                     capture the           insert
#                   second "wildcard"  --->  here
fooAfoo2Bfoo3C.foo3 renamed as fooB.foo3

【讨论】:

    【解决方案2】:

    在原始文件所在的目录尝试以下重命名命令。

    rename 's/^.*\./foo\*\./' *.foo3
    

    它将foo*foo2*foo3*.foo3文件重命名为foo*.foo3

    【讨论】:

      猜你喜欢
      • 2016-06-13
      • 2011-11-19
      • 2015-10-04
      • 1970-01-01
      • 2016-01-20
      • 2014-03-31
      • 1970-01-01
      • 2020-09-12
      • 2014-01-26
      相关资源
      最近更新 更多