如何将数字写入范围并打印较低的数字

时间:2014-05-21 11:18:38

标签: awk intervals

任何人都可以帮我解决如何使用awk将值集合分组到范围中并将每个范围的最低值打印为输出。

示例文件包含

2
3
4
6
7
8
10
12
13
14
16
18
19

从最小值开始,我想将它们分组为> = 4的区间并打印出最小值

小组应该是

f1rst group
2
3
4
6

second group
7
8
10

third group
12
13
14

fourth group
16
18
19

输出应该是每组的最小值

2
7
12
16

或打印出每组的最大值

6
10
14
19

1 个答案:

答案 0 :(得分:0)

使用awk

将其分组为4

最小

awk 'NR%4==1' file
2
7
13
19

最高

awk 'NR%4==0' file
6
12
18

获取最小值和最大值。

awk 'ORS=NR%4?FS:RS' file | awk '{for (i=1;i<=NF;i++) {min=$i<min||!min?$i:min; max=$i>max||!max?$i:max} print min,max;min=max=0}'
2 6
7 12
13 18
19 19

第一个awk组数据,第二个得到maxmin