在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
在块后打印结果,而不是结束块。如果您知道数字的范围,您可以为重置的最大值和最小值指定超出范围的值,或者更一般地为空字符串,如上所述