sed/awk:修改源文件?

sed/awk:修改源文件?

我正在尝试编写一些需要对几个配置文件进行的更改的脚本。值得一提的是,我既不是 sed 也不是 awk 的专家,尽管我对 sed 更在行。

现在,我正在做:

sed '/setting.name/c setting.name: newvalue' </etc/foo.conf >tmpfile.tmp && mv tmpfile.tmp /etc/foo.conf

但肯定有更好的方法吧?也许用 awk?

答案1

更好的方法:

 sed -i.bak 's/Old Info/New Info/' file.cfg

这将就地编辑文件,但将原始文件保存为“name.cfg.bak”。

如果你知道所有要改变的事情,那么你可能会想要一个脚本来执行如下操作:

 sed -i.bak -e 's/first setting/new first/' -e 's/next setting/new next/' -e 's/etc/new etc/' file.cfg

相关内容