以hello为例,我有以下文件:

file1
aa1
aa2
aa3
aa4
aa5
aa6
aa7
aa8
aa9
aa10

file2
aa1 1.1.1.1
aa2 1.1.1.2
aa4 1.1.1.4
aa6 1.1.1.6
aa11 1.1.1.11
aa8 1.1.1.8

我需要保留文件的所有行1,但打印匹配行的IP。类似于:
file3
aa1 1.1.1.1
aa2 1.1.1.2
aa3
aa4 1.1.1.4
aa5
aa6 1.1.1.6
aa7
aa8 1.1.1.8
aa9
aa10

我试着用两个for循环和awk来编写一些脚本,但它并没有像预期的那样工作。

最佳答案

使用标准join命令:

$ join -a 1 file1 file2
aa1 1.1.1.1
aa2 1.1.1.2
aa3
aa4 1.1.1.4
aa5
aa6 1.1.1.6
aa7
aa8 1.1.1.8
aa9
aa10

这个工具将两个文件连接在一个共享的“键”列上。-a 1保留文件1中所有未配对的行。

10-07 16:42