我知道执行此操作的唯一方法是使用for循环迭代每个文件:
for file in *something.txt; do
out=\`echo $file | sed 's/something/else/'\`; mv $file $out;
done
我想知道是否有其他方法或捷径(使用GNU bash)。
答案 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和你的帖子中的基本循环概念,只有你选择的编程语言。