今天看别人写的脚本的时候,看到了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。
总结:其实{}就是能够把多个规则放里面,用;分隔。