Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses

Re: Text processing question - strange output

by mkmcconn (Chaplain)
on Nov 21, 2001 at 00:59 UTC ( #126639=note: print w/replies, xml ) Need Help??

in reply to Text processing question - strange output

Piercer, I could not get your script to fail, but we seem to be using different versions of nbtstat.

I looked at your requirements, and although all the suggestions are good ones, it appears I might have something to offer in trying to satisfy all the requirements.

  • get the first 15 characters of each line
  • no duplicates
  • in comma delimited form.
#!c:\perl\bin\perl -w use strict; # open(NB, "nbt.csv")|| die"Cant open input file nbt.csv"; # NBT.CSV simply contains ip addresses - one per line # as DATA sample does my %stathash = (); while(my $ip = <DATA>){ chomp $ip; #put nbtstat results in an array, one line = one element my @nbtstat = split /\n/, `nbtstat -a $ip`; #modify @nbtstat to discard gibberish (if desired) for (@nbtstat){ s/^\s+//g; $_ = substr($_,0,15); s/[^a-z|A-Z|_|0-9|\040]//g; s/\s+$//g; } # remove duplicates from array my %uniq; @nbtstat = grep { ! $uniq{$_} ++ } @nbtstat; $stathash{$ip} = \@nbtstat; } for my $key (keys %stathash){ print "\n$key: \n"; #skip empty elements otherwise print to list /.+/ and print "$_," for @{$stathash{$key}}; } __DATA__

Local Area Conn,Node IpAddress,Host not found,
Local Area Conn,Node IpAddress,NetBIOS Remote,Name,OWL,TISIMAGING,MAC Address,
Local Area Conn,Node IpAddress,NetBIOS Remote,Name,DELTA,TISIMAGING,MAC Address,
Local Area Conn,Node IpAddress,NetBIOS Remote,Name,PANAMA,TISIMAGING,MAC Address,


Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://126639]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others musing on the Monastery: (3)
As of 2023-03-24 18:43 GMT
Find Nodes?
    Voting Booth?
    Which type of climate do you prefer to live in?

    Results (61 votes). Check out past polls.