如何替换文件名中的子字符串?

时间:2014-10-30 02:48:02

标签: regex macos sed

我正在尝试使用sed为我目录中的每个文件替换子句字符串“Dog_1”和“Dog_2”。

文件名如下所示:Dog_1_interictal_segment_0472.csv

这是我正在使用的命令:

sed -i '' s/Dog_1/Dog_2/g *.csv

由于某种原因,子串未被替换。

2 个答案:

答案 0 :(得分:3)

哦,你正试图重命名文件?你无法使用sed;它会更改文件的内容,而无需重命名。这是我如何重命名:

for a in Dog_1*.csv; do
  mv "$a" "Dog_2${a#Dog_1}"
done

答案 1 :(得分:1)

由于问题涉及重命名文件,因此最好rename使用它们。 此应用程序的语法与sed' s非常相似:

rename 's/Dog_1/Dog_2/' *.csv

如果是这样的话,您也可以执行全局重命名:

rename 's/Dog_1/Dog_2/g' *.csv