我有以下格式的DNS和IP Adress的列表:
DNS IP
DNS IP
DNS IP
,我需要执行一个执行dig +short DNS
的脚本,并检查它与旁边的IP是否相同,以及所有文档。这个想法是,如果是相同的,则返回诸如$DNS and $IP match
的消息,如果没有,则返回错误消息。
我已经尝试了awk '{ DDD=$(dig +short $1); if ( $DDD == $2 ); then; print "'$DDD' and '$2' match."; fi }' all.log
,但结果是:
(空间)和(空间)匹配。
(空间)和(空间)匹配。
(空间)和(空间)匹配。
这是一个仅使用bash的简单答案:
while read DNS IP; do
DDD=$(dig +short "$DNS")
if [ "$DDD" = "$IP" ]; then
echo "'$DDD' and '$IP' match."
else
echo "'$DDD' and '$IP' do not match."
fi
done < all.log
被警告dig +short NAME
命令可以返回多个行,在这种情况下,脚本将行不通...