сравнить два столбца с помощью Awk - PullRequest
0 голосов
/ 18 мая 2018

Мне нужно сравнить разные столбцы в файле и создать новый столбец, в котором хранится наименьшее значение из всех этих столбцов, например, test.txt

label col1  col2

A 0.999966  0.618701

output

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 голосов
/ 18 мая 2018
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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...