我有一个包含基因型的大文件。 基本上,一行是一个位置(或一个SNP)和一列(所有的数字连接在一起形成一个巨大的数字,但一列中的一个数字alignment在一个列中是一个人)。 96人)。 这里是一个例子:
921212922222222212292222229222221222211222222222222219929222292222922229919922222222222222292292 929111221111111221191211222912222221111210229921222129929222291221921219929992122122222211292299 292222922212222122292222222222921122222222921219222222912222299199922222912222222222221222292229 222222221122122922122222112212212221222122221922999229222229222212992221222222221222222222222212 222222222292212221291112192222122121922122222122229212222221212212922221222122122912222922222111 222222921222222922292222122222922222229222122291299122922222229222922229229222219222292222122222
我只想在这里保留一些“列”,但由于它是一个数字,所以我需要剪切它,把它放在不同的列中,并将所有的东西连接成相同的格式,但是需要2列。
例如,如果我select列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
你可以使用cut
:
cut -c 1,3 output.geno
得到:
91 99 22 22 22 22
尝试:
awk '{print $1$3}' FS= output.geno
相当于:
awk 'BEGIN{FS=""}{print $1$3}' output.geno
您需要将FS
(字段分隔符)设置为空
@M。 Beausoleil,@Try(虽然没有测试过):
awk '{print substr($0,1,1) substr($0,3,1)}' Input_file
很简单,拿出第一位和第三位数字并打印出来。