【问题标题】:Change file names iteratively in Linux [duplicate]在Linux中迭代更改文件名[重复]
【发布时间】:2014-09-05 11:49:35
【问题描述】:

我知道执行此操作的唯一方法是使用 for 循环遍历每个文件:

for file in *something.txt; do  
    out=\`echo $file | sed 's/something/else/'\`;  mv $file $out;  
done

我想知道是否有任何其他方式或捷径(使用 GNU bash)。

【问题讨论】:

    标签: linux bash


    【解决方案1】:

    作为 bash 本身的一部分,还提供了简单的 子字符串替换

    mv $file ${file/something/else}
    

    示例:

    $ touch {1..3}something.txt
    $ ( for i in *something.txt; do mv $i ${i/something/else}; done )
    $ ls -1 *else*
    1else.txt
    2else.txt
    3else.txt
    

    【讨论】:

      【解决方案2】:

      rename 和您的帖子中的基本循环概念相同,只是在您选择的任何编程语言中。

      【讨论】:

      • 太好了,我正在寻找这样的东西
      猜你喜欢
      • 2018-11-29
      • 2022-01-04
      • 1970-01-01
      • 1970-01-01
      • 2021-05-29
      • 2016-02-29
      • 2014-06-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多