[英]Merging and comparing files using Linux command
我有一個關於合並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
我需要找出一個命令來獲取下面的輸出:
輸出文件:
2 10.1.1.3 server_3
4 10.1.1.1 server_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
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 -k1n
(或sort -n
)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.