在bash中更改文件名前缀的脚本

6

来自

abcd_if_vb.c
abcd_if_av.c

to

edfg_if_vb.c
edfg_if_av.c

问题是如何捕获以abcd前缀开头的文件。
3个回答

12

不是真的。

for file in abcd*
do
  mv "$file" "edfg${file#abcd}"
done

2
mv "$file" "${file/#abcd/edfg}" - 在我看来,这样更加优雅! - b3h3m0th

6
如果您有rename,您可以使用它来重命名这些文件。
rename abcd_ edfg_ abcd*

要小心使用rename,因为它依赖于系统,你还需要使用正则表达式来工作。一定要先检查man rename。但是,rename通常是处理这些情况的好方法。 - Bernhard

0
ls -1 abcd*|awk '{f=$0;gsub(f,"abcd","efgh");system("mv "$0" "f);}'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接