sed 内联替换,无需创建文件

sed 内联替换,无需创建文件

在部署此文件后,我尝试在配置文件中进行内联替换。我查看了 sed 文档,但无法使其工作。即使使用 -e,现在我也会 mv 进入 .back 文件,然后 sed 进入文件,最后 rm 文件。我相信有更简单的方法可以做到这一点,但无法使其工作。

谢谢

mv 文件.conf 文件.back sed s/string/anotherstring/ 文件.back > 文件.conf rm 文件.back

答案1

如果需要立即修改文件内容,可以使用sed -e 's/your/expression/g' -i filename。您可以添加-i.bak以在发生任何更改之前备份原始文件。

补充一下,这sed是一个流编辑器而您更应该使用 edex

更新示例:

[val0x00ff@localhost dir1]$ ls
file
[val0x00ff@localhost dir1]$ cat file 
test
anothertest
hangethisLine/g

[val0x00ff@localhost dir1]$ sed -i.bak 's/test/substitute_to_this/g' file 
[val0x00ff@localhost dir1]$ ls -l
total 8
-rw-rw-r-- 1 val0x00ff val0x00ff 62 Aug 28 14:59 file
-rw-rw-r-- 1 val0x00ff val0x00ff 34 Aug 28 14:58 file.bak
[val0x00ff@localhost dir1]$ cat file
substitute_to_this
anothersubstitute_to_this
hangethisLine/g

[val0x00ff@localhost dir1]$ cat file.bak 
test
anothertest
hangethisLine/g

了解如何-i.bak自动创建备份文件以防止我们意外覆盖文件。

西林http://wiki.bash-hackers.org/howto/edit-ed 使用编辑器的示例ed

相关内容