Как заменить строку другой строкой в ​​linux [закрыто]

-2
28.03.2018, 11:38
2 ответа

Awkраствор:

awk 'NR == FNR{ a[$1, $2] = $3; next }
     ($1, $2) in a{ $3 = a[$1, $2] }1' file2 OFS='  ' file1

Выход:

A1  1  NA
A1  2  NA
A1  3  NA
A1  4  A
A1  5  B
A1  6  T
A1  7  NA
A1  8  NA
A1  9  NA
A2  1  NA
A2  2  NA
A2  3  T
A2  4  NA
0
28.01.2020, 05:17

Я пока не могу добавлять сюда комментарии, поэтому вот мое awkрешение из здесь , которое я протестировал на основе вашего примера ввода и вывода:

cat file1 file2 | awk '
    BEGIN { OFS = "  " }
    { rows[$1 OFS $2] = $3 }
    END { for (r in rows) print(r, rows[r]) }
' | sort -V >file3

Пробовали ли вы этот или другие опубликованные ответы? Если да, то какие результаты вы не ожидали? Это может помочь предоставить дополнительную информацию о формате файла данных, если ответы не работают.

0
28.01.2020, 05:17

Теги

Похожие вопросы