sed正则经典案例(三)
###打印指定的行内容
已知文件内容如下:
cat index.txt: test{ admin:111 index:aaa admin:111 } normal{ admin:3333 index:bbb admin:3333 } test{ admin:111 index:ccc admin:111 }
要求打印 test 段落里的 index 后面的值:
aaa ccc
解答:多种方法汇总
sed -rn '{/index/s#.*:([^b]+)#\1#p}' index.txt sed -rn '/^test/,+2s/.*index:(.*)/\1/p' index.txt sed -nr '1~2s#index:(.+)#\1#p' index.txt sed -r '/[1-3]+|^.*\{|\}|^.*b/d' index.txt |cut -d ":" -f2 sed -r '/[1-3]+|^.*\{|\}/d' index.txt|awk -F ":" '{print $2}'|sed '/^.*b/d' awk -F':' '/^test\{/{a=1}/\}/{a=0}a&&/index/{print $2}' index.txt
转载于:https://blog.51cto.com/dakaige517/1930783