Question Lecture de la sortie de la commande shell dans un script awk


J'ai un fichier texte avec une liste d'adresses IP et d'autres informations.

J'utilise un script awk pour traiter cette liste et générer divers calculs. je veux appeler dig -x à partir du script awk et utilisez la valeur renvoyée.

j'ai essayé

hostname = system("dig +short -x" ip_address);

mais ce qui se passe est -

  1. l'appel à creuser imprime une ligne au shell

  2. nom d'hôte reste nul


4
2018-01-07 16:03


origine




Réponses:


Figured out out, mais s'il vous plaît n'hésitez pas à ajouter de meilleures réponses

cmd = "dig +short -x " ;
cmd ip_address | getline hostname;
close(cmd)

Ensuite, je peux utiliser le nom d'hôte n'importe où dans le script.


11
2018-01-07 16:10



C'est la bonne façon de le faire. Vous voudrez probablement faire close(cmd) ensuite. - Dennis Williamson
Oui merci, a découvert après cette publication, fermera la question dans 2 jours (exigence de superutilisateur) - bryan