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>