Seu script precisa ser reordenado um pouco e awk não precisa de nada
echo -e 'Count\tIP\tNSLookup'
while read count line ; do
echo -ne "$count\t$line\t"
nslookup $line | grep name
done < <(cut -d' ' -f1 test.apache.access_log | sort | uniq -c | sort -rn | head -3)
E claro que isso pode ser feito apenas pelo awk
awk '
BEGIN{
OFS="\t"
print "Count", "IP", "NSLookup"
}
{
A[$1]++
}
END{
for(a in A){
i = 3
while(i > 0 && A[a] > A[B[i]]){
B[i+1] = B[i]
i--
}
B[i+1] = a
}
for(b=1; b<4; b++){
"nslookup "B[b]" | grep name" | getline ns
print A[B[b]], B[b], ns
}
}
' test.apache.access_log