On Fri, 2004-08-13 at 16:51, Errin Larsen wrote: > um, can anyone explain the 'print' function below to me? > > specifically ... this: > > 'print "@F[0,5]"'
The -a signal splits the input lines and stores the resulting elements in @F Example: perl -nae 'print "$F[1]\n"' file.txt where file.txt contains one two three four five six prints: two five Also, although this splitting on spaces, you can also use the -F signal to define what you're splitting in. See `perldoc perlrun` HTH, jac PS: Oh, print "@F[0,5]", of course, prints the first six elements of @F, and since they're between double quotes, they're joined with whatever is in $" (usually a space) > How do I use this idea in a script instead of a command line? also, > how is the input getting into this function? I mean, I understand $_ > and all, but on a command line, are we piping to that command? what's > with the '@F'? > > Thanks for the help! > > --Errin > > > On Fri, 13 Aug 2004 09:52:04 -0400, [EMAIL PROTECTED] > <[EMAIL PROTECTED]> wrote: > > 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> > > > > -- José Alves de Castro <[EMAIL PROTECTED]> http://natura.di.uminho.pt/~jac
signature.asc
Description: This is a digitally signed message part