繁体   English   中英

使用 bash 打印具有相同模式的两行之间的行

[英]Print the lines between two lines that has the same pattern using bash

我有一个包含字符串模式 'OG' 的文本文件 -

OG
ANNNFKSODJFHFJ
SSJSJKSKJSAJAS
SSSSSSSSSSSSFA
OG
FALJFNAFAFNAFJL
AFJLJSLJFLFSLFL
ASJFAJFAKFKAFKK
OG
AJSFLJASFLSFLFF
SJFLAFLAFLFLAFA
ASASFASFOFLJAJF

我想打印前两行之间以 'OG' 作为字符串模式的行,即结果应该是 -

ANNNFKSODJFHFJ
SSJSJKSKJSAJAS
SSSSSSSSSSSSFA

在这里,任何使用“sed”或“awk”的建议。 我不想使用按行号打印,而是使用模式搜索。

我尝试使用 awk,但没有用 -

awk '/^OG/{flag=1;next}/^OG/{flag=0}flag' file.txt

你快到了:

$ awk '/^OG/ {if(go) exit; go=1; next} go {print}' file.txt
ANNNFKSODJFHFJ
SSJSJKSKJSAJAS
SSSSSSSSSSSSFA

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM