在Linux中迭代地更改文件名

时间:2014-09-04 23:45:51

标签: linux bash

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

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

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

2 个答案:

答案 0 :(得分:2)

还有一个简单的子串替换作为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

答案 1 :(得分:1)

rename和你的帖子中的基本循环概念,只有你选择的编程语言。