我有一个包含基因型的巨大文件。基本上,一行是一个基因座(或一个SNP)和一个列(所有数字连接在一起形成一个巨大的数字,但一列中的一个数字对齐是1个人。在这个例子中我连续有96个数字所以96个人)。这是一个例子:
921212922222222212292222229222221222211222222222222219929222292222922229919922222222222222292292
929111221111111221191211222912222221111210229921222129929222291221921219929992122122222211292299
292222922212222122292222222222921122222222921219222222912222299199922222912222222222221222292229
222222221122122922122222112212212221222122221922999229222229222212992221222222221222222222222212
222222222292212221291112192222122121922122222122229212222221212212922221222122122912222922222111
222222921222222922292222122222922222229222122291299122922222229222922229229222219222292222122222
我想只保留某些“列在这里”,但由于它是一个数字,我需要剪切它,将它放在不同的列中并将所有内容连接起来以具有相同的格式但是我需要的是2列。
例如,如果我选择第1列和第3列,则最终结果应为:
91
99
22
22
22
22
我试过了(上面的数据是在output.geno中):
cat ~/Desktop/output.geno| awk '{ print $1 $3}'
echo ~/Desktop/output.geno | grep -o ""
如果你想玩这里是一个玩具数据集:
echo "921212922222222212292222229222221222211222222222222219929222292222922229919922222222222222292292
929111221111111221191211222912222221111210229921222129929222291221921219929992122122222211292299
292222922212222122292222222222921122222222921219222222912222299199922222912222222222221222292229
222222221122122922122222112212212221222122221922999229222229222212992221222222221222222222222212
222222222292212221291112192222122121922122222122229212222221212212922221222122122912222922222111
222222921222222922292222122222922222229222122291299122922222229222922229229222219222292222122222" > ~/Desktop/output.geno
答案 0 :(得分:3)
尝试:
awk '{print $1$3}' FS= output.geno
相当于:
awk 'BEGIN{FS=""}{print $1$3}' output.geno
您需要将FS
(字段分隔符)设置为空
答案 1 :(得分:3)
您可以使用cut
:
cut -c 1,3 output.geno
给出:
91
99
22
22
22
22
答案 2 :(得分:1)
@M。 Beausoleil,@ Try(虽然没有经过测试):
awk '{print substr($0,1,1) substr($0,3,1)}' Input_file
简单,取出第1和第3位数字并打印出来。