[PLUG] awk syntax error, part ii

Ken Stephens kens at cad2cam.com
Fri May 25 18:22:20 UTC 2012


Rich Shepard wrote:
>     I've looked in the ORA book and on line without seeing what I've written
> incorrectly in this script:
>
> #! /usr/bin/awk -f
>
> BEGIN { FS = OFS = "|"}
>
> if ($3 ~ /Ag/&&  $4 ~ /0.000/) { print $1, $2, $3, "-0.005" };
> else if ($3 ~ /Alk_tot/&&  $4 ~ /0.000/) { print $1, $2, $3, "-1.000" };
> else if ($3 ~ /Cr/&&  $4 ~ /0.000/) { print $1, $2, $3, "-0.030" };
> else if ($3 ~ /Fe/&&  $4 ~ /0.000/) { print $1, $2, $3, "-1.200" };
> else if ($3 ~ /Mg/&&  $4 ~ /0.000/) { print $1, $2, $3, "-1.000" };
> else if ($3 ~ /NO3-NO2/&&  $4 ~ /0.000/) { print $1, $2. $3, "-0.020" };
> else if ($3 ~ /Na/&&  $4 ~ /0.000/) { print $1, $2, $3, "-0.530" };
> else if ($3 ~ /Sb/&&  $4 ~ /0.000/) { print $1, $2, $3, "-0.010" };
> else if ($3 ~ /Se/&&  $4 ~ /0.000/) { print $1, $2, $3, "-0.003" };
> else if ($3 ~ /TDS/&&  $4 ~ /0.000/) { print $1, $2, $3, "-15.000" };
> else { print $1, $2, $3, $4 }
>
>     awk tells me there's a syntax error at the start of each 'if' and 'else
> if' line. I've seen examples without the semi-colon and with it, but I've
> not found what I'm doing incorrectly. I also tried wrapping the body of the
> script in {} but that makes no difference, either.
>
>     A clue is needed.
>
> Rich
>
Rich,

I would  suspect your error is really in the previous statement.

BEGIN { FS = OFS = "|" }

I would restate this as:

BEGIN { FS = "|"; OFS = "|" }

Ken






More information about the PLUG mailing list