New Eyes on an awk script
Brad De Vries
devriesbj
Mon Nov 15 08:19:16 PST 2004
On Sun, 14 Nov 2004 11:15:37 -0800, Shawn Tayler
<stayler at xmtservices.net> wrote:
> Would one of you more knowledgable type show me the stupid mistake I am
> making with the following awk script? I have been banging my head against
> the "syntax error" wall for a while now.
>
> BEGIN { FS = "," }
> ++x
> if ( NF == 9 ) { print x","$1","$2","$3","$4","$5","$6","$7","$8","$9",NA" }
> if ( NF == 10 ) && ( $9 == $10 ) { print x","$1","$2","$3","$4","$5","$6","$7","$8","$9",NA" }
> if ( NF == 10 ) && ($9 != $10 ) { print x","$1","$2","$3","$4","$5","$6","$7","$8","$9","$10 }
> if ( NF == 8 ) { print x","$1","$2","$3","$4","$5","$6","$7","$8", , " }
>
> I keep getting a syntax error on the if statement.
>
> Shawn
Two things Shawn; first, the block you want to execute must be
enclosed in braces and second, the entire condition for each "if" must
be enclosed in parenthesis. Try:
-------
BEGIN { FS = "," }
{
++x
if ( NF == 9 ) { print
x","$1","$2","$3","$4","$5","$6","$7","$8","$9",NA" }
if (( NF == 10 ) && ( $9 == $10 )) { print
x","$1","$2","$3","$4","$5","$6","$7","$8","$9",NA" }
if (( NF == 10 ) && ($9 != $10 )) { print
x","$1","$2","$3","$4","$5","$6","$7","$8","$9","$10 }
if ( NF == 8 ) { print x","$1","$2","$3","$4","$5","$6","$7","$8", , " }
}
-------
Brad.
More information about the Linux-users
mailing list