用sed创建一个新行

时间:2015-10-29 02:01:57

标签: bash sed

我正在尝试编写一个脚本来自动安装openvpn。我要做的最后一件事是将配置文件插入自动启动。我已经尝试过使用sed来搜索一行之前我想要插入新的但是它似乎没有工作,我认为由于命令中的引号。

做我所拥有的是:

#AUTOSTART="all"
#AUTOSTART="none"
#AUTOSTART="home office”

然后我运行我的sed命令:

sed -i 's/home office"/home office"\n AUTORUN="Netherlands"/' openvpn

我环顾四周,试图逃避我的双引号,看看是不是问题,但这并没有成功。

我的最终目标是:

#AUTOSTART="all"
#AUTOSTART="none"
#AUTOSTART="home office”
AUTOSTART=“Netherlands”

2 个答案:

答案 0 :(得分:3)

你不需要替换任何东西。 sed可以在所需的行之后添加文字。

sed -i '/home office/a\
AUTOSTART="Netherlands"\
' openvpn

答案 1 :(得分:0)

你可以这样做:

$ sed 's/"home office"/&\nAUTOSTART="Netherlands"/' file.txt 
#AUTOSTART="all"
#AUTOSTART="none"
#AUTOSTART="home office"
AUTOSTART="Netherlands"

我认为你的意思是"而不是

如果您的意思是

$ sed 's/"home office”/&\nAUTOSTART=”Netherlands”/' file.txt 
#AUTOSTART="all"
#AUTOSTART="none"
#AUTOSTART="home office”
AUTOSTART=”Netherlands”