每当我在 ubuntu 中使用sed
命令时,输出都不会反映在文件中。
sed 's/dog/cat/' me
dog hates rat
在文件cat hates rat
中不会发生变化me
。
答案1
默认情况下,sed
不会编辑输入文件,它只在 STDOUT 上显示输出。
要就地编辑文件,您需要-i
以下选项sed
:
sed -i.bak 's/dog/cat/' file.txt
操作完成后原文件将备份为file.txt.bak
,修改后的文件将备份为file.txt
。
就你的情况而言:
sed -i.bak 's/dog/cat/' me
如果您不想保留备份:
sed -i 's/dog/cat/' file.txt
从man sed
:
-i[后缀], --in-place[=后缀]
就地编辑文件(如果提供了后缀则进行备份)