用于替换多个文件中的(单个)字符串的Shell脚本/命令?

时间:2014-05-01 11:18:16

标签: bash shell replace sh

(我确信之前已经问过,但我只能找到一些类似的问题。)

我有一堆文件,其中一些包含字符串“foobar”。我想在每个文件中替换“foobar”和“baz”的出现 - 在这些文件中,而不是在新文件中或在任何地方流式传输。

我想在命令行中指定文件名,即

[me@myhost:/$] magic_replace "foobar" "baz" file1 file2 file3 etc

2 个答案:

答案 0 :(得分:2)

使用sed。

sed -i 's/foobar/baz/g' file1 file2 file3 etc

答案 1 :(得分:1)

试试这个:

sed -i -e 's/foo/baz/g' file1 file2

或者这个:

for file in $(echo file1 file2); do
    sed -i -e 's/foo/baz/g' $file
done

如果sed接受多个输入文件,第一个应该可以工作,检查它。