AWK substitution

I need to copy field 2 to field 3 for only those records that have the 1st field equal to account

e.g. file

account|123|789|xxx|yyy|zzz|...
account_group|444|555|xxx|yy|zz|....
account|456|901|aaa|bbb|ccc|.....

after running awk script should look like

account|123|123|xxx|yyy|zzz|...
account_group|444|555|xxx|yy|zz|....
account|456|456|aaa|bbb|ccc|.....

awk '{FS="|";if ( $1 == "account" ){$3 = $2}{print $0}}' file

should work

awk '$1=="account"{$3=$2}1' FS="|" OFS="|" filename

or

awk '($1=="account"&&$3=$2)||1' FS="|" OFS="|" filename

Use nawk or /usr/xpg4/bin/awk on Solaris.

awk 'BEGIN {FS="|"; OFS="|"} {if ($1 == "account") {$3 = $2}; print}'

Cheers for that, seems all the solutions work