首先,假設我們有一個文件,叫123.txt,#cat一下看到里面的內(nèi)容是這樣的:
公司主營業(yè)務:網(wǎng)站建設、成都網(wǎng)站制作、移動網(wǎng)站開發(fā)等業(yè)務。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)推出寧都免費做網(wǎng)站回饋大家。[root@func-lms-001 ~]# cat 123.txt james curry durant wade yaoming messi [root@func-lms-001 ~]#如果我們想在james前面加上lebron,那么采用的sed語句就是:#sed -i '/^james/s/^/lebron /' 123.txt,如果要在curry后面加上 champion,那么采用的語句就是:#sed -i '/^curry/s/$/ champion!/' 123.txt。
使用完上面兩句話之后,再#cat一下,看下效果:
[root@func-lms-001 ~]# cat 123.txt lebron james curry champion! durant wade yaoming messi [root@func-lms-001 ~]#現(xiàn)在我們要把 durant前面加上FMVP這幾個字母,按照上面的語句找葫蘆畫瓢的話,應該是:#sed -i '/^durant/s/^/FMVP /' 123.txt 。但是很抱歉,這個語句是錯誤的!因為^是匹配開頭durant的意思,而我們再看一下durant那一行的開頭是空格。
那么就要用liunx的正則來匹配空格,于是這句話就變成了:#sed -i '/^\s\+durant/s/^/FMVP/' 123.txt,^\s\+這個就是正則里匹配空格的意思 。
#cat一下:
[root@func-lms-001 ~]# cat 123.txt lebron james curry champion! FMVP durant wade yaoming messi [root@func-lms-001 ~]#那么現(xiàn)在要在messi后面加上"GOAL !!!",就很簡單了。語句是:#sed -i '/^\s\+messi/s/$/ GOAL !!!/' 123.txt。
以上我們把有/無空格情況下的首尾添加字符都練習了一遍,下面我們要看看如果要在中間添加怎么辦?
比如說,有一天苦逼的運維接到開發(fā)PL的郵件,說”由于安全基線要求,現(xiàn)在需要監(jiān)聽內(nèi)網(wǎng)端口“,具體的需求就是把所有含tomcat的模塊里的server.xml的文件里添加上內(nèi)網(wǎng)IP。
原有的server.xml的節(jié)選如下:
現(xiàn)在要把
請問怎么做?
答案1:
sed -i '/答案2:
sed -i 's@Connector port="8099"@& address="1.2.3.4"@' server.xml另外有需要云服務器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。