Text-Processing
按共同的第一個欄位比較兩個排序的文件
我必須比較兩個不同
/etc/hosts
文件的 IP,並在並排視圖中顯示差異。文件hosts_sorted
10.244.74.152 REF_UP-4 10.244.74.154 REF_UP-5 10.244.74.156 REF_UP-6 10.244.74.153 REF_UP-7 10.244.74.155 REF_UP-8 10.244.74.157 REF_UP-9 10.244.74.159 REF_UP-10 10.244.74.160 REF_UP-11
文件hosts_new_sorted
10.244.74.152 REF_UP-4-new 10.244.74.154 REF_UP-5-new 10.244.74.156 REF_UP-6-new 10.244.74.153 REF_UP-7-new 10.244.74.155 REF_UP-8-new 10.244.74.157 REF_UP-9-new 10.244.74.160 REF_UP-11-new
我的預期輸出
< 10.244.74.159 REF_UP-10
我已經按 IP 對條目進行了排序並使用了
diff <(cut -f1 hosts_sorted) <(cut -f1 hosts_new_sorted)
. 但是,這會刪除所需的主機名。有沒有辦法告訴 diff 只使用第一列?但是,比較不應包括第二列。
試試這個,
awk 'FNR==NR{a[$1];next}!($1 in a)' hosts_new_sorted hosts_sorted 10.244.74.159 REF_UP-10
它將檢查 in 的第一列是否存在
hosts_sorted
,hosts_new_sorted
如果不可用則列印。