linux 系统中输出文本开头至匹配特定字符的行

 

001、

root@PC1:/home/test2# ls
a.txt
root@PC1:/home/test2# cat a.txt
aa dd ss
dd ff xv
ef 33 cc
xx ee ww
df ff zc
xx xx ff
er ed ww
xx xx ee
er uy vv
root@PC1:/home/test2# sed -n '1,/xx/p' a.txt      ## 输出开头至匹配xx的行
aa dd ss
dd ff xv
ef 33 cc
xx ee ww

 

002、

root@PC1:/home/test2# ls
a.txt
root@PC1:/home/test2# cat a.txt
aa dd ss
dd ff xv
ef 33 cc
xx ee ww
df ff zc
xx xx ff
er ed ww
xx xx ee
er uy vv
root@PC1:/home/test2# sed -n '1,/ee$/p' a.txt    ## 匹配开头至以ee结尾的行
aa dd ss
dd ff xv
ef 33 cc
xx ee ww
df ff zc
xx xx ff
er ed ww
xx xx ee

 

003、

root@PC1:/home/test2# ls
a.txt
root@PC1:/home/test2# cat a.txt
aa dd ss
dd ff xv
ef 33 cc
xx ee ww
df ff zc
xx xx ff
er ed ww
xx xx ee
er uy vv
root@PC1:/home/test2# sed -n '1, /^xx.*ff$/p' a.txt    ## 匹配开头至以xx开头同时以ff结尾的行
aa dd ss
dd ff xv
ef 33 cc
xx ee ww
df ff zc
xx xx ff

 

004、

root@PC1:/home/test2# ls
a.txt
root@PC1:/home/test2# cat a.txt
aa dd ss
dd ff xv
ef 33 cc
xx ee ww
df ff zc
xx xx ff
er ed ww
xx xx ee
er uy vv
root@PC1:/home/test2# awk 'BEGIN{idx = 0} {if(idx == 0) {print $0}; if($1 == "xx" && $3 == "ff") {idx++}}' a.txt  ## 匹配开头至第一行为xx同时第三行为ff的数据
aa dd ss
dd ff xv
ef 33 cc
xx ee ww
df ff zc
xx xx ff

 

posted @ 2022-08-02 23:12  小鲨鱼2018  阅读(577)  评论(0编辑  收藏  举报