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

 

原创文章,作者:,如若转载,请注明出处:https://blog.ytso.com/278557.html

(0)
上一篇 2022年8月3日
下一篇 2022年8月3日

相关推荐

发表回复

登录后才能评论