【发布时间】: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)。
【问题讨论】:
我知道执行此操作的唯一方法是使用 for 循环遍历每个文件:
for file in *something.txt; do
out=\`echo $file | sed 's/something/else/'\`; mv $file $out;
done
我想知道是否有任何其他方式或捷径(使用 GNU bash)。
【问题讨论】:
作为 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
【讨论】:
rename 和您的帖子中的基本循环概念相同,只是在您选择的任何编程语言中。
【讨论】: