Aqui está o meu código .... Estou tendo problemas ao colocar nomes de host inválidos detectados em um arquivo e, em seguida, nslookup nomes de host válidos. Quando executo este script, estou tentando fazer com que ele ignore os nomes de host inválidos e faça um nslookup em válido. Eu tentei usar "host, bem como cavar em vez de nslookup, mas ainda não vendo resultados
#!/bin/sh
#Query Theater DB for cnames
#Pulling cnames
#Lets use sed to clean up and remove EMPTY strings, "", @, and *
mssql -f csv -c ~/applications/mssql/mssql.json -q "SELECT * FROM Cname" | cut -f 3 -d "," | sed '/^\s*$/d' | sed 's/[""]//g' | sed 's/[@]//g' | sed 's/[*]//g' | sort | uniq > /tmp/final.csv
#Added this to get rid of the hidden M from /tmp/final.csv
dos2unix /tmp/final.csv
#Validating cnames
while read -r host
do
echo $host | egrep "^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)+([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9])$" >/dev/null 2>&1
if [ $? -eq 0 ]
then
echo "$host" >> /tmp/cnames.csv
else
echo "$host is not a valid hostname" >> /tmp/badcnames.csv
fi
done < /tmp/final.csv
#Lets validate good hostnames
for i in 'cat /tmp/final.csv'; do nslookup $i | grep Name | awk '{print $2}'; nslookup $i | grep Add | grep -v '#' | awk '{print $2}'; done > /tmp/output.csv
Tags hostname nslookup shell-script