2012-08-29 31 views
-1

我有一个测试文件中的主机列表。我试图将输出组织成3列。 我想在主机名和ilo-hostname上执行nslookup,并将结果放入如下所示的列中。将nslookup的结果写入列

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

编辑: 我现在有一个看起来像这样的

主机名
IloHostname
Hotname
IloHostname
主机名**服务器无法找到IloHostname文件:// SERVFAIL时Ilohostname未找到或不存在

用于创建此文件的脚本

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

项目list3是NSLOOKUP

回答

0

输出,则可以使用host代替nslookup。它的输出格式更适合后处理来完成你想要的功能。

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