Привет, У меня есть одна команда AWK, которая объединяет два файла с одним и тем же ключом.Объединение (слияние) Несколько строк с использованием AWK
awk -v OFS='\t' '
NR==1 { print $0, "Column4", "Column5"; next }
NR==FNR { a[$1]=$0; next}
$1 in a { print a[$1], $2, $3 }
' $1 $2 > $3
Это возвращает только один ключ из каждого файла. Например, как показано ниже,
Файл 1
Key Column1 Column2 Column3
Test1 500 400 200
Test1 499 400 200
Test1 499 399 200
Test1 498 100 100
Test2 600 200 150
Test2 600 199 150
Test2 599 199 100
Файл 2
Test1 Good Good
Test2 Good Good
Тогда результаты будут
Key Column1 Column2 Column3 Column4 Column5
Test1 500 400 200 Good Good
Test2 600 200 150 Good Good
, но я хочу, чтобы все строки объединены, как показано ниже ,
Key Column1 Column2 Column3 Column4 Column5
Test1 500 400 200 Good Good
Test1 499 400 200 Good Good
Test1 499 399 200 Good Good
Test1 498 100 100 Good Good
Test2 600 200 150 Good Good
Test2 600 199 150 Good Good
Test2 599 199 100 Good Good
У любого есть идея просто изменить логику с помощью AWK. Спасибо! С
Я думаю, что вам не хватает '; next' в этом блоке 'NR == FNR'. –
@ EtanReisner Да, я изменил спасибо! –