【问题标题】:How to make a reference to what was matched in glob pattern如何引用 glob 模式中匹配的内容
【发布时间】:2011-12-01 06:15:38
【问题描述】:

使用正则表达式,您可以放置​​一个捕获组并在您的操作中引用它(即 \1)。在 bash 中使用 glob 时是否有类似的情况?

假设我有名为“file1”、“file2”、“file3”的文件,我想将它们重命名为“foo1”、“foo2”、“foo3”。我想做这样的事情:

mv 文件(?) foo\1

这可能吗?

【问题讨论】:

    标签: bash unix glob


    【解决方案1】:

    您正在寻找批量重命名。 *上有很多解决方案。这里是one example

    【讨论】:

      【解决方案2】:

      这个特定问题的一个解决方案:

      for i in `ls | egrep "^file[0-9]?$"`; do mv $i ${i/file/ foo}; done
      

      【讨论】:

      • 谢谢,类似于标记答案中的链接,以及'ls | egrep PATTERN' 在您需要强大的正则表达式来列出您想要影响的文件时很有用。
      最近更新 更多