sed 大括號 sed {} 的作用詳解


今天看別人寫的腳本的時候,看到了sed  -r   {}   我看網上對於這個的記錄比較少,所以就寫了這篇隨筆。

 

先看一下效果

cat  test.txt

image: qqq/www/eee:TAG

image: aaa/bbb/ccc:TAG

 

sed -r '/image:/{/ccc/! s#image: ([^:]*):.*#image: \1:哈哈#g}'  test.txt

image: qqq/www/eee:哈哈
image: aaa/bbb/ccc:TAG

 

可以看到第一行的TAG被替換成了哈哈。

其實本來有最簡單的方式:

sed -r 's/(eee:)TAG/\1哈哈/g' test.txt

image: qqq/www/eee:哈哈
image: aaa/bbb/ccc:TAG

 

其實方式有很多,我今天主要說的是這個{}在sed里面的作用。

 

首先sed 要想使用{} 就必須要加參數-r 這個是支持正則的意思,你可以寫各種擴展正則。

 

1,大括號其實就是可以放多個命令,每一個命令都可以執行,用;分隔。

    比如: sed  -r  '{s/aaa/bbb/g; s#qqq#xxx#g}'   aaa.txt

    這個的意思就是把aaa替換成bbb    qqq替換成xxx。

 

總結:其實{}就是可以把多個規則放里面,用;分隔。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM