(我确信之前已经问过,但我只能找到一些类似的问题。)
我有一堆文件,其中一些包含字符串“foobar”。我想在每个文件中替换“foobar”和“baz”的出现 - 在这些文件中,而不是在新文件中或在任何地方流式传输。
我想在命令行中指定文件名,即
[me@myhost:/$] magic_replace "foobar" "baz" file1 file2 file3 etc
答案 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接受多个输入文件,第一个应该可以工作,检查它。