在awk中以字符串分隔的记录中查找最小值和最大值

在awk中以字符串分隔的记录中查找最小值和最大值,awk,Awk,使用这样的文件: line0 200 1500 line1 750 1000 line2 600 1700 line3 150 1100 line4 400 1800 line5 100 1900 line6 950 1200 line7 250 1400 …我使用此脚本在第二列中找到最小值,在第三列中找到最大值: awk'{if(min==“”){min=$2;max=$3};if($3>max)

使用这样的文件:

line0   200     1500
line1   750     1000
line2   600     1700
line3   150     1100
line4   400     1800
line5   100     1900
line6   950     1200
line7   250     1400
…我使用此脚本在第二列中找到最小值,在第三列中找到最大值:
awk'{if(min==“”){min=$2;max=$3};if($3>max){max=$3};if($2

我将感谢您的帮助,帮助我完成同样的工作,但现在,对于同一文件中由“YYYY”和“XXXX”分隔的每组行,如下所示:

YYYY
line0   200     1500
line1   750     1000
line2   600     1700
line3   150     1100
line4   400     1800
line5   100     1900
XXXX
YYYY
line6   950     1200
line7   250     1400
line8   200     2500
line9   350     2000
XXXX
YYYY
line10  500     2700
line11   50     2100
line12  300     2800
line13  700     2900
line14  400     2200
line15  300     2400
XXXX
所需的输出将是:

100 1900
200 2500
50  2900

awk
救援

$ awk '/XXXX/{print min, max;min=max=""} 
     min==""||$2<min{min=$2} 
     max==""||$3>max{max=$3}' file   

100 1900
200 2500
50 2900
$awk'/XXXX/{print min,max;min=max=”“}
最小值=“”| |$2max{max=$3}文件
100 1900
200 2500
50 2900
在块后打印结果,而不是结束块。如果您知道数字的范围,您可以为重置的最大值和最小值指定超出范围的值,或者更一般地为空字符串,如上所述