我有一个关于合并2个数据文件的问题。第一个文件包含每个服务器名称的IP地址。第二个包含数据项和关联的IP地址。
对于输出,我想要输入第二个文件,但是使用映射的服务器名称,在第一个文件中查找。
File_1:
10.1.1.1 server_1
10.1.1.2 server_2
10.1.1.3 server_3
File_2:
2 10.1.1.3
4 10.1.1.1
我需要找出一个获取输出的命令:
OUTPUT_FILE:
2 10.1.1.3 server_3
4 10.1.1.1 server_1
答案 0 :(得分:1)
您可以使用awk:
awk 'FNR==NR{a[$1]=$2; next} $2 in a{print $0, a[$2]}' file1 file2
2 10.1.1.3 server_3
4 10.1.1.1 server_1
答案 1 :(得分:1)
join -1 1 -2 2 -o 2.1,0,1.2 <(sort -k1 File_1) <(sort -k2 File_2)
输出:
4 10.1.1.1 server_1
2 10.1.1.3 server_3
加入文件1的第一个字段,文件2的第二个字段,输出文件2的第一个字段,加入字段和文件1的第二个字段;将sort -k1 File_1
的输出和sort -k2 File_2
的输出作为输入文件。
如果您需要按第一列中的数值排序的输出,请输入sort -k1n
(或sort -n
)。