簡體   English   中英

使用Linux命令合並和比較文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM