Digamos que você tenha esse arquivo chamado, por exemplo, users.txt e você só quer consertá-lo para que seu aplicativo seja iniciado e permita que você examine e calcule a situação; você pode definir apenas IsBuyer para 1 e IsBidder e IsAdmin para 0 .
Escolha seu sabor entre awk e perl :
awk 'NR==1; /person/ && $2+$3+$4>1 {print $1 " 1 0 0"}' users.txt
perl -lape 'if (/person/ && $F[1]+$F[2]+$F[3]>1) {$_="$F[0] 1 0 0"}' users.txt
Uma abordagem um pouco mais sofisticada seria definir apenas IsBuyer para 1 se fosse encontrado 1 , ou seja, inverter os valores para 0 , mas nunca inverter os valores para 1 . É claro que não faço ideia se isso faria sentido em sua situação, pois depende do tipo de corrupção de dados que ocorreu.