我有一个包含超过一百万列的非常大的文件。我需要在文件中添加第二,第三,第四,第五和第六列,第二列是第一列的副本,其他列在每行上包含相同的值。例如,我有一个看起来像这样的文件:
id1 A A C T ..
id2 A G T C ..
id3 G A T C ..
id4 G G T T ..
.
.
我需要将其更改为:
id1 id1 0 0 -9 -9 A A C T ..
id2 id2 0 0 -9 -9 A G T C ..
id3 id3 0 0 -9 -9 G A T C ..
id4 id4 0 0 -9 -9 G G T T ..
.
.
有关如何在Unix下高效执行此操作的任何想法(因为我需要多次重复此操作)?
答案 0 :(得分:3)
sed 's/^\([^ ]*\)/\1 \1 0 0 -9 -9/'
如果编写C ++程序的速度不够快,那只需要几行。
答案 1 :(得分:0)
我猜我们正在尝试将此文件转换为PLINK ped format,如果这样,则无需添加这些列,PLINK可以使用以下标志处理irregular files:
格式不正确的PLINK文本文件
这些文件使您可以使用缺少家庭ID的.fam或.ped文件, 父母身分,性别和/或表型栏。
--no-fid --no-parents --no-sex --no-pheno