我需要替换所有出现的内容并回写到同一个文件
我试过了:
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
有什么想法吗?
答案 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