我有一个文件,我试图用以下命令替换另一个字符串
sed -e "s|value=\"localhost\"|value=\"$defaultHost\"|g" "$serv_dir"/controller1/server.xml
当sed
运行时,它打印到std.out罚款,但当我cat
文件时内容没有改变
答案 0 :(得分:2)
您需要使用-i
sed
选项才能更改文件。
答案 1 :(得分:1)
使用-i
进行编辑的替代方法是使用中间临时文件。这是一种方便的方法,允许您测试成功完成sed -i
(类似于使用sed -i[ext]
创建备份,创建filename.ext
作为备份)使用临时文件:
sed -e expression filename > tmpfile && cp tmpfile filename && rm tmpfile
当然,您可以省略最终&& cp tmpfile filename && rm tmpfile
并保留原始filename
,直到您在tmpfile.