例如,我有两个文件,一个包含服务器名称和 IP,另一个包含服务器名称和计算机名称。这些文件没有真正的顺序。我尝试过使用 Sort、awk 和 sed 的变体。但第一个文件维护得不是很好,并且包含虚假数据,这些数据抵消了我计划的做法。
我尝试在两个文件之间进行基本模式匹配,仅针对两行中包含的服务器,并将两个文件中的行中的数据打印在第三个文件的一行上。
文件1:
Server1 10.10.10.1
Server2 10.10.10.2
....
Server154 10.10.30.8
Server155 10.10.30.9
文件2:
Server1 site site1
Server2 site site2
....
Server154 site site154
Server155 site site155
输出:
Server1 10.10.10.1 site site1
Server2 10.10.10.2 site site2
...
Server154 10.10.30.8 site site154
Server155 10.10.30.9 site site155
最佳答案
这应该可以解决问题:
$ awk 'FNR==NR{a[$1]=$0;next}($1 in a){print a[$1],$2,$3}' file1 file2
Server1 10.10.10.1 site site1
Server2 10.10.10.2 site site2
Server154 10.10.30.8 site site154
Server155 10.10.30.9 site site155
关于perl - 查找两个文件之间第一列的匹配模式,并在第三个文件中打印每个文件中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16214521/