J'ai un fichier appelé hostlist.txt
qui contient du texte comme celui-ci:
host1.mydomain.com
host2.mydomain.com
anotherhost
www.mydomain.com
login.mydomain.com
somehost
host3.mydomain.com
J'ai le petit script suivant:
#!/usr/local/bin/bash
while read host; do
dig +search @ns1.mydomain.com $host ALL \
| sed -n '/;; ANSWER SECTION:/{n;p;}';
done <hostlist.txt \
| gawk '{print $1","$NF}' >fqdn-ip.csv
Quels résultats pour fqdn-ip.csv
:
host1.mydomain.com.,10.0.0.1
host2.mydomain.com.,10.0.0.2
anotherhost.internal.mydomain.com.,10.0.0.11
www.mydomain.com.,10.0.0.10
login.mydomain.com.,10.0.0.12
somehost.internal.mydomain.com.,10.0.0.13
host3.mydomain.com.,10.0.0.3
Ma question est de savoir comment supprimer le .
juste avant la virgule sans invoquer sed
ou à gawk
nouveau? Existe-t-il une étape que je peux effectuer dans les appels existants sed
ou gawk
qui supprimera le point?
hostlist.txt
contiendra des milliers d'hôtes donc je veux que mon script soit rapide et efficace.
dig +short
ça ne marche pas pour vous?