linux sed在某些字符串的下一行插入内容?sed在下一行插入?
需求描述:
今天在配置nrpe的时候,使用到了在搜索到某些字符串之后,然后在字符串的下一行进行插入字符串
在此记录下如何实现.
即通过sed的a命令实现内容的追加.
操作过程:
1.查看原文件中的内容
[root@testvm02 ~]# cat nrpe.cfg #command[check_users]=/usr/local/nagios/libexec/check_users -w $ARG1$ -c $ARG2$ #command[check_load]=/usr/local/nagios/libexec/check_load -w $ARG1$ -c $ARG2$ #command[check_disk]=/usr/local/nagios/libexec/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$ #command[check_procs]=/usr/local/nagios/libexec/check_procs -w $ARG1$ -c $ARG2$ -s $ARG3$
2.通过sed实现在搜索到某个字符串之后,在下一行插入字符串
[root@testvm02 ~]# sed -i '/#command\[check_procs\]/a\command\[check_disk\]=\/usr\/local\/nagios\/libexec\/check_disk -w 15\% -c 10\% -p \/ -C -w 15\% -c 10\% -p \/mnt' nrpe.cfg [root@testvm02 ~]# cat nrpe.cfg #command[check_users]=/usr/local/nagios/libexec/check_users -w $ARG1$ -c $ARG2$ #command[check_load]=/usr/local/nagios/libexec/check_load -w $ARG1$ -c $ARG2$ #command[check_disk]=/usr/local/nagios/libexec/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$ #command[check_procs]=/usr/local/nagios/libexec/check_procs -w $ARG1$ -c $ARG2$ -s $ARG3$ command[check_disk]=/usr/local/nagios/libexec/check_disk -w 15% -c 10% -p / -C -w 15% -c 10% -p /mnt #黄色是原字符串,蓝色是要插入的字符串,红色表示的是在匹配的字符串的下一行插入
另,a后面的\可以不需要:
sed -i '/#command\[check_procs\]/a command\[check_disk\]=\/usr\/local\/nagios\/libexec\/check_disk -w 15\% -c 10\% -p \/ -C -w 15\% -c 10\% -p \/mnt' nrpe.cfg
[root@testvm03 etc]# sed -i '/#command\[check_procs\]/a command\[check_disk\]=\/usr\/local\/nagios\/libexec\/check_disk -w 15\% -c 10\% -p \/ -C -w 15\% -c 10\% -p \/mnt' nrpe.cfg [root@testvm03 etc]# cat nrpe.cfg | tail -n 5 #command[check_users]=/usr/local/nagios/libexec/check_users -w $ARG1$ -c $ARG2$ #command[check_load]=/usr/local/nagios/libexec/check_load -w $ARG1$ -c $ARG2$ #command[check_disk]=/usr/local/nagios/libexec/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$ #command[check_procs]=/usr/local/nagios/libexec/check_procs -w $ARG1$ -c $ARG2$ -s $ARG3$ command[check_disk]=/usr/local/nagios/libexec/check_disk -w 15% -c 10% -p / -C -w 15% -c 10% -p /mnt #也实现了同样的目的.
注意:这里没有s/原/新/的方法,也就是没有s这个参数,并且最后没有/.
文档创建时间:2018年8月2日18:48:24
第1次修改:2018年8月3日17:42:02 修改内容:在搜索到内容之后,追加数据到下一行,a后面不需要反斜杠.