Chris wrote:
> I'm trying to use an if query in combination with awk.

I am not an awk syntax expert but AFAIK you don't want to split up the
awk program string into separate arguments.  Quote the entire program
into one string argument.  I think that is the root of your problem.
Your example shows an "if" in program argument one and the rest of the
program in program argument two.

> I'm therefore using this commandline:
> [EMAIL PROTECTED] ~]$ gawk if '($8<0.001) {print "SNP:" $2 "  P="$8}' 
> Batch_Call_dev-bs.model.P1.model 

I would do that this way using pattern-action pairs where the pattern
acts as an if statement.  It just seems the most awk-ish way to me.

  gawk '$8<0.001 {print "SNP:" $2 "  P="$8}' Batch_Call_dev-bs.model.P1.model 

I tested with this:

  printf "1 one\n2 two\n3 three\n" | awk '$1<3 {print $0}'
  1 one
  2 two

But using the awk if control syntax in the awk program itself also
works okay.  Here is a test using it:

  printf "1 one\n2 two\n3 three\n" | awk '{ if ($1<3) {print $2;} }'
  one
  two

Hope that helps,
Bob


Reply via email to