J'ai un fichier appelé hostlist.txtqui 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 sedou à gawknouveau? Existe-t-il une étape que je peux effectuer dans les appels existants sedou gawkqui 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?