以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中所有未配对的行。