使用 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
我有一个包含字符串模式 '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