我正在使用如下所述的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或python命令!!
提前致谢。
答案 0 :(得分: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
:使用file1的第3个字段作为连接键-2 1
:使用file2的第一个字段作为连接键-o 1.1 1.2 1.3 1.4 2.2 2.3
:在构造输出线时服从FORMAT。 (第一个文件中的第一个字段:1.1)-e 'NA'
:用NA
使用命令join --help
了解更多详情。