У меня есть такой ввод:
rs10000004 C T 4 rs10000004 0 75625312 C C C C T 0 C T
rs10000005 G A 4 rs10000005 0 75625355 G 0 A A A G A A
Я хочу заменить столбцы с 8 на "A", если значение в столбце идентично второму полю $2 или "B", если значение идентично третьему полю $3. В противном случае значение печатается как есть (в некоторых столбцах ожидаются нулевые значения).
Ожидаемый результат
rs10000004 C T 4 rs10000004 0 75625312 A A A A B 0 A B
rs10000005 G A 4 rs10000005 0 75625355 A 0 B B B A B B
Я пробовал следующее, но это не дает мне никаких результатов, просто пустые строки. Для меня лучше улучшить мой код, чем показать мне новое решение, использующее что-то отличное от awk.
cat input | awk '{ for(i=8; i<=NF; i++) { if($i == $2) $i="A"; else if($i == $3) $i="B"; else $i == 0; } print $i }'
заранее спасибо