Monks,

I'm in need of your help once again. I have the following text file:
+ 192.168.89.1 acmeorp.acme.com |___ 21 File Transfer Protocol [Control] * + 192.168.31.3 ftp.acme.com |___ 21 File Transfer Protocol [Control] |___ 220 ftp.acme.com FTP server ready... * + 192.168.33.19 acmeftp.acme.com |___ 21 File Transfer Protocol [Control] |___ 220-acme Secure FTP Server.. WarFTPd 1.71.02 ( +Feb 14 2000) Ready.. (C)opyright 1996 - 2000 by Jarle (jgaa) Aase +- all righ * + 192.168.29.21 orcweb.acme.com |___ 21 File Transfer Protocol [Control] |___ 220 sandbox FTP server (Version 1.1.214.7 Thu Aug + 10 09:57:38 GMT 2000) ready... * + 192.168.11.22 commerce.acme.com |___ 21 File Transfer Protocol [Control] |___ 220 commerce Microsoft FTP Service (Version 4.0). +.. * + 192.168.19.24 webapp.acme.com |___ 21 File Transfer Protocol [Control] |___ 220 WEBAPP1PRI Microsoft FTP Service (Version 5.0 +)...
I am trying to save the ip, server name, port #, service, and description to separate arrays, but I'm having trouble since the data is not all on one line. Should I try and join the lines first? Here is what I have so far. I'm able to capture the ip and server name, but it fails to capture the rest. I know it's because of my next unless (/\*/); statement. I'm thinking I need a loop statement or two to get it to do want I want, but it's just not coming to me. I would appreciate any help. TIA
#!/usr/bin/perl -w use strict; my $infile = './ftp.txt'; my $outfile = './fileout.csv'; my (@ips, @names, @ports, @service, @desc); open INFILE, "$infile" or die "Can't open $infile: $!\n"; while (<INFILE>){ chomp; next unless (/\*/); my ($ip, $name, $port, $service, $desc) = (split /\s+/)[2,3,6]; push (@ips, $ip); push (@names, $name); push (@ports, $port); } close INFILE; foreach (@ips){ print "Here are the ip's:$_\n"; } foreach (@names){ print "Here are the server names:$_\n"; } foreach (@ports){ print "Here are the ports:$_\n"; }
Thanks,
Dru
Another satisfied monk.

In reply to Splitting Across Multiple Lines by dru145

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.