Я использую DHCP-сервер в локальной сети, который вызывает этот скрипт каждые несколько секунд:
dumpleases | awk '{print $2}' > leasesnow #get list of all IPs leased in a file, one per line
ADDED=`awk 'NR==FNR{a[$1]=$2;next} !($1 in a) { print $2 }' leasesthen leasesnow` #try to extract only new leases to variable
print $ADDED
checkin.sh $ADDED #do something with new devices on network
cp -f leasesnow leasesthen
Я также пытался использовать diff, но он выглядит даже более сложным, чем awk, потому что он требует сначала отфильтровать измененные строки из вывода.
Что не так: $ ADDED никогда не получает правильные (даже любые) значения, что означает, что awk работает не так, как задумано. Можете ли вы объяснить, что не так? Я совсем новичок в awk. Благодарю.