簡體   English   中英

如何比較Unix文本文件中的行並將它們一起添加到另一個文本文件中?

[英]How can I compare rows in Unix text files and add them together in another text file?

我有一個包含3列的文本文件1。 第一列包含一個數字,第二列包含一個單詞(可以是像狗一樣刺痛或像1050這樣的數字),第三列是大寫字母的TAG。 我有另一個有2列的文本文件2。 第一列有一個數字,第二列有一個大寫字母的TAG。 我想將文本文件1中的每一行與文本文件2中的每一行進行比較。如果文本文件1中第[3]欄中的TAG與文本文件2中第[2]欄中的TAG相同,那么我想要將文本文件1中的數字存儲在文本文件1中單詞旁邊的文本文件2中的數字旁邊。文本文件2中沒有重復的標記,文本文件1中沒有重復的單詞。圖示:

文本文件1

2    2737    HPL
32   hello   PLS
3    world   PLS
323  .       OPS

文本文件2

342  HPL
56   PLS
342  DCC
4    OPS

我想要:

2   342  2737
32  56   hello
3   56   world
323 4  .

你可以用awk這樣做:

awk 'FNR==NR { h[$2] = $1; next } $3 in h { print $1, h[$3], $2 }' file2 file1

第一部分將文件2中的鍵和列保存在關聯數組( h )中,第二部分將文件1中的第3列與此數組進行比較並打印相關部分。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM