Awk 搜索3+;文件中的连续行匹配条件

Awk 搜索3+;文件中的连续行匹配条件,awk,grep,Awk,Grep,我想搜索一个文件,查找符合给定条件的>=3个连续行的每个实例。我想为每个连续匹配块打印第一个匹配行的第1列和第2列,以及最后一个匹配行的第3列 例如,假设我在第4列中查找大于500的多行。以下是我想要的: 示例文件 Sc000000 2400 3600 602 Sc000000 3600 4800 835 Sc000000 4800 6000 718 Sc000000 6000 7200 416 Sc000000 72

我想搜索一个文件,查找符合给定条件的>=3个连续行的每个实例。我想为每个连续匹配块打印第一个匹配行的第1列和第2列,以及最后一个匹配行的第3列

例如,假设我在第4列中查找大于500的多行。以下是我想要的:

示例文件

Sc000000    2400    3600    602
Sc000000    3600    4800    835
Sc000000    4800    6000    718
Sc000000    6000    7200    416
Sc000000    7200    8400    602
Sc000000    8400    9600    615
Sc000000    9600    10800   125
Sc000000    10800   12000   875
Sc000000    12000   13200   753
Sc000000    13200   14400   567
结果文件

Sc000000    2400    6000
Sc000000    10800   14400
我试过
awk'/{$4>=500}/{f++;if(f>=3)print;last=$0;next}{f=0}file.txt
,但除了语法错误(我是awk新手)之外,它还会打印每一行,而不是我正在寻找的汇总输出。感谢您的帮助

$cat tst.awk
$ cat tst.awk
$4 <= 500 { prt(); next }
!cnt++ { beg = $1 OFS $2 }
{ end = $3 }
END { prt() }

function prt() {
    if ( cnt > 2 ) {
        print beg, end
    }
    cnt = 0
}

$ awk -f tst.awk file
Sc000000 2400 6000
Sc000000 10800 14400
$4 2 ) { 打印,结束 } cnt=0 } $awk-f tst.awk文件 SC00000024006000 Sc000000 10800 14400
谢谢,这非常有效。非常感谢:)