我有这样一段文字:
ora.sas.aa.svc
1 ONLINE ONLINE sas1
ora.sas.bb.svc
1 ONLINE ONLINE sas2
ora.sas.cc.svc
1 ONLINE ONLINE sas2
ora.sas.dd.svc
1 ONLINE ONLINE sas1
ora.sas.ee.svc
1 ONLINE ONLINE sas1
2 ONLINE ONLINE sas2
我想要的是 grep 此 .svc
的特定部分和在线状态,例如:
example.txt |grep aa
ora.sas.aa.svc
1 ONLINE ONLINE sas1
或
example.txt |grep ee
ora.sas.ee.svc
1 ONLINE ONLINE sas1
2 ONLINE ONLINE sas2
“在线”的行号可能会改变,所以我不能用 grep -A2
或 grep -A3
进行 grep。
最佳答案
您可以改用 awk:
awk -v s='ee' 'NF==1 && $0 ~ s{p=1} NF==1 && !($0 ~ s){p=0} p' file
ora.sas.ee.svc
1 ONLINE ONLINE sas1
2 ONLINE ONLINE sas2
awk -v s='aa' 'NF==1 && $0 ~ s{p=1} NF==1 && !($0 ~ s){p=0} p' file
ora.sas.aa.svc
1 ONLINE ONLINE sas1
关于linux - Grep 文本的特定部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23222389/