sed線上經典案例之 同時替換多個字串

2021-09-20 18:13:41 字數 2122 閱讀 1968

回答網友請教的乙個問題:

配置檔案如下:

[aaa]

cfg1=aaa

***x=bbb

cfg2=ccc

cfg3=ddd

[bbb]

cfg1=eee

yyyy=fff

cfg2=ggg

cfg3=hhh

cfg4=iii

[ccc]

cfg1=jjj

zzzz=kkk

cfg2=lll

cfg2=mmm

cfg2=nnn

輸出結果:

[aaa]

cfg1=aaa

***x=111

cfg2=ccc

cfg3=ddd

[bbb]

cfg1=eee

yyyy=111

cfg2=ggg

cfg3=hhh

cfg4=iii

[ccc]

cfg1=jjj

zzzz=111

cfg2=lll

cfg2=mmm

cfg2=nnn

要求:將配置檔案的每個節點的第二個配置改為111,用sed怎麼寫?

根據以上需求,現給出以下具體解決方法:

test.log為測試檔案

[root@localhost test]# cat test.log

[aaa]

cfg1=aaa

***x=bbb

cfg2=ccc

cfg3=ddd

[bbb]

cfg1=eee

yyyy=fff

cfg2=ggg

cfg3=hhh

cfg4=iii

[ccc]

cfg1=jjj

zzzz=kkk

cfg2=lll

cfg2=mmm

cfg2=nnn

[root@localhost test]# sed -i \n 's/***x=bbb/***x=111/g;s/yyyy=fff/yyyy=111/g;s/zzzz=kkk/zzzz=111/g'   test.log

[root@localhost test]# cat test.log

[aaa]

cfg1=aaa

***x=111

cfg2=ccc

cfg3=ddd

[bbb]

cfg1=eee

yyyy=111

cfg2=ggg

cfg3=hhh

cfg4=iii

[ccc]

cfg1=jjj

zzzz=111

cfg2=lll

cfg2=mmm

cfg2=nnn

使用hash法高效替換多個字元

在專案中經常要遇到要對字串中的特殊的字元進行替換,例如字串中如果多了個回車鍵 換行符或是製表符,那麼將該string寫成行表形式的資料時,該行資料將不能滿足需求。而如果替換過程中,不注意演算法的設計,替換的時間複雜度將很高。本文介紹使用hash的方式,以空間的浪費的代價來換取替換時間的降低,使得時間...

python替換多個字串的方法

參考 import re a 123 n b re.sub r s a print b 最後輸出結果為 123 解釋一下這個正規表示式的意思 r s 1 r指明這是乙個正規表示式 2 內是乙個字符集,字符集內的字元任何乙個被匹配,都算匹配成功,比如r a bcd e 可以匹配到 abe ace ad...

python 字串一次替換多個字元

最近在用python給自己的seo工作提高效率和節省時間,發現python真的很不錯,可以完成很多事情。下面是我最近在用python為 自動更新文章做了乙個替換錨文字的工作,也是python 字串一次替換多個字元的很好的應用。我用了幾個候選的鏈結,讓random隨機讓程式自己去選擇,這個如果懂得se...