比较两个文件匹配模式和打印

时间:2016-03-15 17:33:56

标签: awk

我有两个文件input1.txt和input2.txt。

input1.txt包含以下详细信息:

    abcd
    bcad
    cagh
    degh
    usna

input2.txt有以下详细信息:

abcd.dev.net ip: 169.254.0.2
bcad.prod.net ip: 169.254.0.3
cagh.uat.net ip: 169.254.0.4
us-1212-qwe.net ip: 169.254.232.50
us-cisco.net ip: 10.120.2.3
degh.stage.net ip: 169.254.0.5
usna.prod.net ip: 169.254.0.6
ab1234.net ip: 169.254.0.7

- catorr.net ip:169.254.0.8

我需要从“input2.txt”文件中获取“input1.txt”中列出的服务器的相应IP详细信息

输出应该是这样的:

abcd.dev.net 169.254.0.2
bcad.prod.net 169.254.0.3
cagh.uat.net 169.254.0.4
degh.stage.net 169.254.0.5
usna.prod.net 169.254.0.6

2 个答案:

答案 0 :(得分:1)

grep会工作:

grep -Fwf input1 input2


abcd.dev.net ip: 169.254.0.2
bcad.prod.net ip: 169.254.0.3
cagh.uat.net ip: 169.254.0.4
degh.stage.net ip: 169.254.0.5
usna.prod.net ip: 169.254.0.6

答案 1 :(得分:1)

如果你想只在第一个时期加入,你可以使用这个

$ join -t. input1 <(sort input2)

abcd.dev.net ip: 169.254.0.2
bcad.prod.net ip: 169.254.0.3
cagh.uat.net ip: 169.254.0.4
degh.stage.net ip: 169.254.0.5
usna.prod.net ip: 169.254.0.6

如果input1未排序,请执行相同的<(sort input1)