aaa aaaa aaaa aaaa
sss ssss ssss ssss
ddd dddd dddd dddd
fff ffff ffff ffff
abc pattern asd fde
111 222 333 444 555
666 777 888 999 000
期望的输出:如果
111 222 333 444 555
666 777 888 999 000
aaa aaaa aaaa aaaa
sss ssss ssss ssss
ddd dddd dddd dddd
fff ffff ffff ffff
abc pattern asd fde
111 222 333 444 555
666 777 888 999 000
期望的输出:如果
111 222 333 444 555
666 777 888 999 000
只要找到模式就设置一个标志。从那一刻起,打印以下行:
$ awk 'p; /pattern/ {p=1}' file
111 222 333 444 555
666 777 888 999 000
或者也
awk '/pattern/ {p=1;next}p' file
pattern
它在每一行中查找。当找到时,变量p
设置为1。棘手的一点是,行只是在 时打印p>0
,因此将打印以下行。
这是如何在两个模式之间选择线条的具体案例?当没有这样的第二种模式时。
sed '1,/pattern/d' file
适用于您的示例。
sed '0,/pattern/d' file
更可靠。
另一种sed
解决方案:
sed ':loop;/pattern/{d};N;b loop' file.txt