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