我已经在蛋白质数据中对所有行进行了数字排序,我现在需要以某种方式组合相同数字的行,以便将新信息添加到上一行:
当我以数字方式对所有行进行排序时,我需要以某种方式组合具有相同数字的行,以便将新信息添加到上面的行。比如没有61的行:
:Col | :1 | :2 | :3 | :4 | :5 | :6 | :7 | :8 | :9 | :10 | :11
:---- | :61 | :PTS ... cyt 1bl .. 0,38 MONOMER homo-trimer FRUC ... PER ... Bac ..
61 PTS ...... 3
变为:
Col 1 2 3 4 5 6 7 8 9 10 11 61 PTS ... cyt 1bl .. 0,38 MONOMER homo-trimer FRUC ... PER ... Bac .. 3
有时在上面的某些列中会缺少信息,这些信息位于较低的列中。因此,加入的顺序必须简洁。
如果这两行中的信息都可行吗?
该文件在这里有1021行
https://www.dropbox.com/s/yuu46crp7ql4z65/Proteins_num.txt?dl=0
答案 0 :(得分:0)
awk / gawk解决方案可能是:
gawk '
BEGIN { SEQ="" };
$1 == SEQ { $1=""; printf("%s\t",$0)};
$1 != SEQ { SEQ=$1; printf("\n%s",$0);}
' Proteins_num.txt
其中SEQ是行首的数字。当它检测到编号变化时,用回车打印最后一行。如果未检测到任何更改,则打印行没有断行,以与下一行连接。文件必须先进行数字排序。