输入:
rs001 A C T G C G T T
rs002 C C T T G G A A
输出1:
rs001 AC TG CG TT
rs002 CC TT GG AA
输出2:
rs001 1 1 1 2
rs002 2 2 2 2
好的,所以基本上我想将任何两个相似的核苷酸(如 AA、CC、TT 或 GG)替换为 2,并将任何两个不同的核苷酸(如 AT、TA、CG、.. 等)替换为 1,同时考虑到输入应该是首先转换为 out1,然后转换为 out2。此外,我们在每一行中有很多字段(如 200 列),所以这里需要循环。
这是我尝试过的:
cat input | awk '{ for (x = 2; x <= NF; x = x+2) print $x$(x+1) }'
结果太奇怪了,谁能告诉我为什么我出不去1?!我在 awk 循环中犯了什么错误?
提前致谢