linux shell搜索某个字符串,然后在后面加上字符串?字符串后面插入字符串?sed字符串后面插入字符串?

需求描述:

  今天在配置nrpe.cfg这个文件,里面有allowed_hosts的IP地址,需要加上监控主机的地址,所以首先要搜索

  到这个地址,然后呢,加上监控主机的地址,考虑通过sed命令来实现

操作过程

1.查看原文件

[root@testvm02 ~]# cat nrpe.cfg 
allowed_hosts=127.0.0.1

2.通过sed命令,在后面加上监控端的主机IP

[root@testvm02 ~]# sed -i 's/allowed_hosts=127.0.0.1/&,192.168.53.25/' nrpe.cfg #通过-i表示直接对文件进行操作s表示替换通过&+字符串,来实现将新的字符串增加到找到得字符串的后面.
[root@testvm02 ~]# cat nrpe.cfg   #重新查看文件的内容,已经在原来的字符串后面加上了新的字符串(带有逗号的字符串)
allowed_hosts=127.0.0.1,192.168.53.25

3.如果有多行,想要同时都进行替换

[root@testvm02 ~]# cat nrpe.cfg 
allowed_hosts=127.0.0.1
allowed_hosts=127.0.0.1
[root@testvm02 ~]# sed -i 's/allowed_hosts=127.0.0.1/&,192.168.53.25/g' nrpe.cfg   #通过g参数将文档中所有满足的字符串后面都加上新的字符串
[root@testvm02 ~]# cat nrpe.cfg 
allowed_hosts=127.0.0.1,192.168.53.25
allowed_hosts=127.0.0.1,192.168.53.25

文档创建时间:2018年8月2日18:34:17

原文地址:https://www.cnblogs.com/chuanzhang053/p/9409006.html