今天看別人寫的腳本的時候,看到了sed -r {} 我看網上對於這個的記錄比較少,因此就寫了這篇隨筆。test
cat test.txt擴展
image: qqq/www/eee:TAGsed
image: aaa/bbb/ccc:TAGim
sed -r '/image:/{/ccc/! s#image: ([^:]*):.*#image: \1:哈哈#g}' test.txtqq
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。
總結:其實{}就是能夠把多個規則放裏面,用;分隔。