如何用sed替换1个文件中的所有实例?

时间:2014-03-02 01:39:39

标签: linux shell sed

我需要替换所有出现的内容并回写到同一个文件

我试过了:

sed 's/one/two/g' file.txt

打印出但不写入文件

我也试过

sed 's/one/two/g' file.txt>file.txt

这导致空文件

sed -i 's/one/two/g' file.txt

给出错误:sed: 1: "file.txt": invalid command code f

有什么想法吗?

1 个答案:

答案 0 :(得分:6)

对于Mac:使用-i.bak添加备份文件

sed -i.bak 's/one/two/g' file.txt

sed -i '' 's/one/two/g' file.txt

对于Linux: 使用sed -i打开infile替换

sed -i 's/one/two/g' file.txt

您还可以使用tmp文件执行以下操作:

sed 's/one/two/g' file.txt > tmp.txt && mv tmp.txt file.txt