![Ubuntu 中的 Sed 命令不起作用](https://linux22.com/image/1055400/Ubuntu%20%E4%B8%AD%E7%9A%84%20Sed%20%E5%91%BD%E4%BB%A4%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8.png)
每当我在 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[=后缀]
就地编辑文件(如果提供了后缀则进行备份)