我有一列数字,每组用空白行分隔。
5
6
10
4
3
4
34
5435
545
543
3
3
0
0
4343
现在我想从每组中找到最大值(在空行之间)并进行进一步的操作。我该怎么做?
答案 0 :(得分:2)
这应该可以解决问题:
$ awk '{n=n>$1?n:$1}/^$/{print n;n=""}END{print n}' file
10
4
5435
4343
您只需使用进一步操作的任何内容更改print n
语句。
答案 1 :(得分:0)
你可以在段落模式下工作
awk -v RS= '{x=-inf; n=split($0, a, "\n");
for(i=0; i<=n; ++i)x=a[i]>x?a[i]:x; print x}' file
10
4
5435
4343
答案 2 :(得分:0)
awk -v RS= -F'\n' '{
min = max = $1
for (i=2;i<=NF;i++) {
min = ($i < min ? $i : min)
max = ($i > max ? $i : max)
}
print min, max
} ' file
4 10
3 4
3 5435
0 4343