Thanks too all who passed some knowledge on, but I ended up using :

         while (<D>) {

                ## look for 9840S and ebexpire
                ## declare OFS = tab
                ## tell split to split on IRS 0,1&5. very similar to awk 
print $

                if (($_ =~ /9840S/) && ($_ =~ /ebexpire, ebexpire/ )) {
                         local $, = "\t";
                        print FOO +(split)[0,1,5], $/;
                        #print +(split)[0,1,5], $/;



Derek B. Smith
OhioHealth IT
UNIX / TSM / EDM Teams
614-566-4145





"John W. Krahn" <[EMAIL PROTECTED]>
08/13/2004 08:51 AM

 
        To:     Perl Beginners <[EMAIL PROTECTED]>
        cc: 
        Subject:        Re: awk like question


[EMAIL PROTECTED] wrote:
> All, 

Hello,

> wasn't sure if this was received b/c I got a reurne to sender error.
> 
> 
> How can I print certain fields delimited by ' '?
> In awk I would write awk '{print $1, $6}' filename

The Perl equivalent of that is:

perl -lane 'print "@F[0,5]"'


> Here is an out file that I want to grab data from :
> 
> 04/29/04 11:00:28 [  6687:ebexpire, [EMAIL PROTECTED] E00796   9840S  537 
 
> 2B0234233543E6A4
> 04/29/04 11:00:28 [  6687:ebexpire, [EMAIL PROTECTED] E00830   9840S  571 
 
> D402325A8345ABDE
> 04/29/04 11:00:28 [  6687:ebexpire, [EMAIL PROTECTED] E00066   9840S  127 
 
> 5202333193B75CBB
> 04/29/04 11:00:28 [  6687:ebexpire, [EMAIL PROTECTED] E00501   9840S  168 
 
> 4B0233BABA5813F6
> 
> I want fields one two and six or the date, time and E string.
> Does it matter whether I use a foreach or a while (<filehandle>)  ?

You could write that in Perl as:

perl -lane 'print "@F[0,1,5]"'


John
-- 
use Perl;
program
fulfillment

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>




Reply via email to