替换一堆文件中的文本模式?

时间:2014-08-11 22:57:05

标签: macos bash sed

文件列表包含几千个文件名,如:

./folder/folder/file.ext

对于列表中的每个项目,我应该编辑一个文件:替换文本模式" old_text_pattern" by" new_text_pattern"。 这个命令:

cat filelist | while read line; do sed -i 's/END_CREDIT_END/END_CREDIT/g' "$line"; done

给出错误:

sed: 1: "./folder ...": invalid command code . 

如何正确执行替换?感谢。

1 个答案:

答案 0 :(得分:1)

OS X sed -i与GNU sed -i不同。 OS X需要一个参数。

cat filelist | while IFS= read -r line
  do sed -i bak 's/END_CREDIT_END/END_CREDIT/g' "$line"
done