2010-09-29 2 views
2

J'écris un script shell qui vérifie que mon serveur DNS recherche. Voici la sortie testée:Correspondance Regex dans le script shell

Server:   127.0.0.1 
Address:  127.0.0.1#53 

Name: galapagos.office 
Address: 192.168.140.25 

Tout sauf le "galapagos.office" doit correspondre exactement. La partie "galapagos.office" elle-même n'a pas vraiment d'importance.

Je me dis que je peux appliquer cette regex à la sortie pour me dire s'il semble que je veux:

Server: +127\.0\.0\.1\nAddress: +127\.0\.0\.1#53\n\nName:.+\nAddress: 192\.168\.140\.25 

La chose est que je ne sais pas vraiment les scripts shell. Quelle est la meilleure façon de s'assurer que regex correspond à la sortie d'une commande nslookup?

Répondre

0

Juste une supposition de ce que vous voulez réellement

awk '/Server/&&$2=="127.0.0.1"{f=1} 
     /Address/&&$2=="127.0.0.1#53"{g=1} 
     /Address/&&$2=="192.168.140.25"{h=1} 
    END{if(h && g && f) print "ok"}' file 
+0

Works pour moi. Merci. –