使用Awk比较两列

时间:2018-05-17 21:52:45

标签: awk

我需要比较文件中的不同列并创建一个存储的新列  所有这些列的最小值 例如test.txt

label col1  col2

A 0.999966  0.618701

输出

label col1  col2 smallest 
A 0.999966  0.618701 0.618701

我试过

awk '{if($3 < $2) print}' test.txt > a

awk '{if($2 < $3) print}' test.txt > b

cat a b > c

任何人都可以在awk中提出任何建议

1 个答案:

答案 0 :(得分:1)

awk '
    NR == 1 { print $0, "smallest"; next }
    {
        min = $1
        for (i=2; i<=NF; i++) {
            if ($i < min) {
                min = $i
            }
        }
        print $0, min
    }
' test.txt