2016-08-24 36 views
-1

我不得不files.txt如下所述。我想逐行添加兩個文件?

File1.txt |s File2.txt: 
-----------------------           
P4-L5, 107MH62, 10.33.145.166, P4:R1:09 |s 10.33.145.166, 1, 3 
P4-L21, 108LH62, 10.33.209.168, P4:R3:10 |s 10.33.209.168, 2, 5 
P5-L16, 108MH62, 10.34.61.116, P5:R2:16 |s 10.34.61.116, 5, 8 
P4-L13, 109LH62, 10.33.177.168, P4:R2:09 |s 10.33.177.168, 10, 12 

我要比較的IP地址,然後從FILE2.TXT添加相應的數字來FILE1.TXT

Output file should be like: 
--------------------------- 
|P4-L5, 107MH62, 10.33.145.166, P4:R1:09, 1, 3| 
|P4-L21, 108LH62, 10.33.209.168, P4:R3:10, 2, 5| 
|P5-L16, 108MH62, 10.34.61.116, P5:R2:16, 5, 8| 
|P4-L13, 109LH62, 10.33.177.168, P4:R2:09, 10, 12| 

請幫我看看這個bash或蟒蛇命令!

在此先感謝。

+0

請格式化預期的輸入和輸出。另外,你到目前爲止嘗試過什麼? – sjsam

+0

我試過這個「粘貼file1.txt file2.txt> fileresults.txt」命令合併到文件。但我想比較兩個文件的列並分別添加第二個文件內容。 –

回答

2
> join -t ',' -1 3 -2 1 -o 1.1 1.2 1.3 1.4 2.2 2.3 file1 file2 
P4-L5,107MH62,10.33.145.166,P4:R1:09,1,3 
P4-L21,108LH62,10.33.209.168,P4:R3:10,2,5 
P5-L16,108MH62,10.34.61.116,P5:R2:16,5,8 
P4-L13,109LH62,10.33.177.168,P4:R2:09,10,12 

非匹配使用-e選項例如:

join -t ',' -1 3 -2 1 -e 'NA' -o 1.1 1.2 1.3 2.2 2.3 -a1 file1 file2 
P4-L5,107MH62,10.33.145.166,1,3 
P4-L21,108LH62,10.33.209.168,2,5 
P5-L16,108MH62,10.34.61.116,5,8 
P4-L13,109LH62,10.33.177.168,NA,NA 

說明:

  • -t',':使用CHAR作爲輸入和輸出字段分隔符
  • -1 3:使用文件1的第3場作爲聯接鍵
  • -2 1:使用文件2 1日場的連接鍵
  • -o 1.1 1.2 1.3 1.4 2.2 2.3:服從格式,而構建輸出線。 (在第一檔第一場:1.1)
  • -e 'NA':與NA

使用命令join --help替換丟失的輸入字段的更多細節。

+0

真的,它有助於感謝夥計! –