Tôi có kịch bản bên dưới để kết hợp hai tệp.Linux awk hợp nhất hai tệp
awk -F"\t" '
{key = $1}
!(key in result) {result[key] = $0; next;}
{ for (i=2; i <= NF; i++) result[key] = result[key] FS $i }
END {
PROCINFO["sorted_in"] = "@ind_str_asc" # if using GNU awk
for (key in result) print result[key]
}
' $1 $2 > $3
Cột đầu tiên là khóa và cả $ 1 và $ 2. Nhưng nếu cột $ 2 có khóa nhưng cột $ 1 không có khóa.
sau đó cũng kết hợp ngoại trừ hàng $ 1.
Tôi muốn kết hợp chỉ có phím $ 1 đang tồn tại. Làm cách nào để kết hợp hai tệp này?
Ví dụ,
Tập 1
Key Column1 Column2 Column3
Test1 500 400 200
Test2 499 400 200
Test5 600 200 150
Test6 600 199 150
Test7 599 199 100
File2
Key Column4 Column5
Test1 Good Good
Test2 Good Good
Test3 Good Good
Test4 Good Good
Test5 Good Good
Test6 Good Good
Test7 Good Good
Current Kết hợp
Key Column1 Column2 Column3 Column4 Column5
Test1 500 400 200 Good Good
Test2 499 400 200 Good Good
Test5 600 200 150 Good Good
Test6 600 199 150 Good Good
Test7 599 199 100 Good Good
Test3 Good Good
Test4 Good Good
Dự kiến Combine.
Key Column1 Column2 Column3 Column4 Column5
Test1 500 400 200 Good Good
Test2 499 400 200 Good Good
Test5 600 200 150 Good Good
Test6 600 199 150 Good Good
Test7 599 199 100 Good Good
Cảm ơn bạn!
Các câu 'Cột đầu tiên là và cả $ 1 và $ 2. Nhưng nếu cột $ 2 có một khóa nhưng cột $ 1 không có khóa. sau đó cũng kết hợp ngoại trừ $ 1 row.' không có nghĩa là gì cả. Bạn nên thay đổi chúng để phản ánh ý của bạn hoặc chỉ xóa chúng. –