我必须比较两个不同文件的 IP/etc/hosts
并在并排视图中显示差异。
文件主机排序
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
文件主机新排序
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 仅使用第一列?然而,比较不应包括第二列。
答案1
尝试这个,
awk 'FNR==NR{a[$1];next}!($1 in a)' hosts_new_sorted hosts_sorted
10.244.74.159 REF_UP-10
它将检查hosts_sorted
in的第一列是否存在hosts_new_sorted
,如果不可用则打印。