Em primeiro lugar, não há sentido em awk '{print $0}'
, que apenas imprime cada linha de entrada. Use whod=$(whois "$domain")
em vez disso. De qualquer forma, o seu principal problema é que você não está citando suas variáveis. Isso causa todos os tipos de problemas, o mais importante é que quando você echo $whod
, o que você obtém é uma única linha com todos os dados. Portanto, seu awk '{print $3}'
está sendo aplicado a esta linha (em curto para maior clareza):
Whois Server Version 2.0 Domain names in the .com and .net [ ... ]
E a terceira palavra é Version
, que, presumivelmente, é o que você recebe. Você também está usando arrays ( expdate=( $( echo $whod ... ) )
) e não entendo o porquê. Pode haver várias correspondências? De qualquer forma, uma versão funcional do seu script é:
while IFS="," read domain rdate; do
whod="$(whois "$domain")"
cdate="$(echo "$whod" | grep -m 1 -i Creation| awk -F" " '{print $3}')"
expdate="$(echo "$whod" |grep -m 1 -i 'Expiration Date' | awk -F" " '{print $3}')"
printf "$domain,$cdate,$expdate \n"
done < "temp1.txt"