问题描述投票:1回答:3
我有一个看起来像这样的文件:
20:60479_C_T 60479 C T 0 0 0 0 0 1 0 1 20:60522_T_TC 60522 T TC 0 0 0 0 0 0 0 20:60568_A_C 60568 A C 0 0 1 0 0 1 20:60571_C_A 60571 C A 0 1 0 1 0 0 20:60579_G_A 60579 G A 0 0 1 0 0 0
我当前的文件更大,有300万行和3,000列。我想使用列$3和$4中的值来替换其余列中的0和1。期望的输出是:
20:60479_C_T 60479 C T C C C C C T C T 20:60522_T_TC 60522 T TC T T T T T T T 20:60568_A_C 60568 A C A A C A A C 20:60571_C_A 60571 C A C A C A C C 20:60579_G_A 60579 G A G G A G G G
我知道如何为几列做到这一点:
awk '{d["0"]=$3; d["1"]=$4; print "20", $1, "0", $2, d[$5], d[$6];}' myfile
但我不知道如何自动为所有列执行此操作并避免手动添加所有列
awk
3个回答
投票
由于您具有可变数量的列,您可能可以使用以下内容:
awk