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