需求
- 有一個數字文本,每行都是數字,以空格分開;現在需要將每行中最大值取出來
文本如下:
[root@localhost ~]#cat urfile
1 1 2
1 2 1
1 3 1
- 使用awk解決
[root@localhost ~]#awk 'BEGIN{n=1;max=0;nu=0}{for(n=1;n<=NF;n++){a[$n]=$n;if(a[$n]>=max)max=a[$n]}{print max}{max=0}}' urfile
2
2
3
解釋說明
使用數組將每個數字記錄,然后將每個值與max變量比較,若比max大,則將內容賦予max;使用nu記錄行號,每行執行最后將max置0
