2016-08-24 41 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

真的,它有助于感谢伙计! –