2012-08-29 1 views
-1

J'ai une liste d'hôtes dans un fichier test. J'essaie d'organiser la sortie en 3 colonnes. Je veux faire nslookup sur le nom d'hôte et ilo-hostname et mettre le résultat dans les colonnes comme ci-dessous.Mettre le résultat de nslookup dans les colonnes

Hostname IP-hostname ilo-hosntame 
Host-1   FQN  FQN 
Host-2   FQN   ** server can't find Host-2: SERVFAIL 

Edit: J'ai maintenant un fichier qui ressemble à ceci

Hostname
IloHostname
Hotname
IloHostname
** Hostname serveur ne peut pas trouver IloHostname: SERVFAIL // quand Ilohostname est introuvable ou n'existe pas

Script utilisé pour créer ce fichier

egrep 'Name:|SERVFAIL' list3 | awk '{sub(/Name:/,"")}; 1' | awk '{$1=$1}1' | awk -F. '{print $1}' 

liste3 est sortie de nslookup

Répondre

0

Vous pouvez utiliser host au lieu de nslookup. Son format de sortie est un peu plus facile à post-traitement pour accomplir ce que vous voulez.

0
This perl code maybe could be useful with some modifications: 

#!/usr/bin/perl 
use strict; 
use warnings; 
while(<DATA>){ 
    my %table; 
    print; 
    my @res = qx/nslookup $_/; 
    my @eres = grep {/(\w+)\:\s+(\S+)\s*/g} @res; 
    #now you got it 
    foreach my $r (@eres){ 
     if ($r =~ /Name:(.*)/) {print "$1\t"} 
     if ($r =~ /Address:(.*)\n/ and not $r =~ /\#/) {print "$1\n"} 
    } 
} 

__DATA__ 
www.cisco.com 
www.google.com 
www.yahoo.com 
Questions connexes