Replace a column with a value conditional on a value in col1

Hi,
Perhaps a rather simple problem...?
I have data that looks like this.

BPC0013 ANNUL_49610 0 0 1 1
BPC0014 ANNUL_49642 0 0 2 1
BPC0015 ANNUL_49580 0 0 1 1
BPC0016 ANNUL_49596 0 0 2 1
BPC0017 VULGO_49612 0 0 1 1
BPC0018 ANNUL_49628 0 0 1 1
BPC0019 ANNUL_49692 0 0 2 1
170291_HMG ANNUL_170291 0 0 1 1
170351_HMG ANNUL_170351 0 0 1 1
170475_HMG 170475 0 0 2 1
170497_HMG ANNUL_170497 0 0 2 1
170534_HMG ANNUL_170534 0 0 1 1
170559_HMG ANNUL_170559 0 0 1 1

I want to change the col6 value to 2 only if the line does not start with BPC.

awk -F "\t" '{if($1==BPC) {print $1,$2,$3,$4,$5,$6} else{print $1, $2, $3, $4, $5, $6="2"}} ' testfam.fam > atestedfam.fam

I tried this, but it is changing everything to 2 at col6.

And the lines that do start with BPC have $6 equal to 2 already.

So isn't this an expected outcome ?

Anyway -

$
$ cat f2
BPC0013 ANNUL_49610 0 0 1 2
BPC0014 ANNUL_49642 0 0 2 2
BPC0015 ANNUL_49580 0 0 1 2
BPC0016 ANNUL_49596 0 0 2 2
BPC0017 VULGO_49612 0 0 1 2
BPC0018 ANNUL_49628 0 0 1 2
BPC0019 ANNUL_49692 0 0 2 2
170291_HMG ANNUL_170291 0 0 1 1
170351_HMG ANNUL_170351 0 0 1 1
170475_HMG 170475 0 0 2 1
170497_HMG ANNUL_170497 0 0 2 1
170534_HMG ANNUL_170534 0 0 1 1
170559_HMG ANNUL_170559 0 0 1 1
$
$ awk '{if (!/^BPC/){print $1,$2,$3,$4,$5,"2"} else {print}}' f2
BPC0013 ANNUL_49610 0 0 1 2
BPC0014 ANNUL_49642 0 0 2 2
BPC0015 ANNUL_49580 0 0 1 2
BPC0016 ANNUL_49596 0 0 2 2
BPC0017 VULGO_49612 0 0 1 2
BPC0018 ANNUL_49628 0 0 1 2
BPC0019 ANNUL_49692 0 0 2 2
170291_HMG ANNUL_170291 0 0 1 2
170351_HMG ANNUL_170351 0 0 1 2
170475_HMG 170475 0 0 2 2
170497_HMG ANNUL_170497 0 0 2 2
170534_HMG ANNUL_170534 0 0 1 2
170559_HMG ANNUL_170559 0 0 1 2
$
$

tyler_durden

Hi durden_tyler
Sorry I pasted from the file that already changed :stuck_out_tongue:

Will change the original post now.

nawk ' /^BPC/{$6 = 2}1' testfam.fam

Thank you durden_tyler & steadyonabix