linux 中awk语句输出每一列类别最小值或者最高值
001、 按照第一列的类别及最后一列值输出最小值
(base) [b20223040323@admin2 test1]$ ls a.txt (base) [b20223040323@admin2 test1]$ cat a.txt 2 2_run1.log:CV error (K=2): 0.42239 2 2_run2.log:CV error (K=2): 0.41605 2 2_run3.log:CV error (K=2): 0.41710 2 2_run4.log:CV error (K=2): 0.41692 2 2_run5.log:CV error (K=2): 0.41663 3 3_run1.log:CV error (K=3): 0.40817 3 3_run2.log:CV error (K=3): 0.39936 3 3_run3.log:CV error (K=3): 0.40815 3 3_run4.log:CV error (K=3): 0.39748 3 3_run5.log:CV error (K=3): 0.40782 4 4_run1.log:CV error (K=4): 0.39269 4 4_run2.log:CV error (K=4): 0.39499 4 4_run3.log:CV error (K=4): 0.39005 4 4_run4.log:CV error (K=4): 0.39736 4 4_run5.log:CV error (K=4): 0.39987 (base) [b20223040323@admin2 test1]$ awk '!($1 in min) || $NF < min[$1] {min[$1]=$NF; line[$1]=$0} END {for(i in line) print line[i]}' a.txt | sort -n 2 2_run2.log:CV error (K=2): 0.41605 3 3_run4.log:CV error (K=3): 0.39748 4 4_run3.log:CV error (K=4): 0.39005

。
002、
(base) [b20223040323@admin2 test1]$ ls a.txt (base) [b20223040323@admin2 test1]$ cat a.txt 2 2_run1.log:CV error (K=2): 0.42239 2 2_run2.log:CV error (K=2): 0.41605 2 2_run3.log:CV error (K=2): 0.41710 2 2_run4.log:CV error (K=2): 0.41692 2 2_run5.log:CV error (K=2): 0.41663 3 3_run1.log:CV error (K=3): 0.40817 3 3_run2.log:CV error (K=3): 0.39936 3 3_run3.log:CV error (K=3): 0.40815 3 3_run4.log:CV error (K=3): 0.39748 3 3_run5.log:CV error (K=3): 0.40782 4 4_run1.log:CV error (K=4): 0.39269 4 4_run2.log:CV error (K=4): 0.39499 4 4_run3.log:CV error (K=4): 0.39005 4 4_run4.log:CV error (K=4): 0.39736 4 4_run5.log:CV error (K=4): 0.39987 (base) [b20223040323@admin2 test1]$ awk '!($1 in max) || $NF > max[$1] {max[$1]=$NF; line[$1]=$0}END{for(i in line) {print line[i]}}' a.txt | sort -n 2 2_run1.log:CV error (K=2): 0.42239 3 3_run1.log:CV error (K=3): 0.40817 4 4_run5.log:CV error (K=4): 0.39987

。

浙公网安备 33010602011771号