我想用awk解析制表符分隔的表 - 第一列有几个重复的条目,我需要删除其他4列总和较小的重复行在桌子里。我可以很容易地删除第一行或第二行,并对列进行求和,但是我无法将两者结合起来。为了我的目的,永远不会有超过2个副本。结合awk脚本的问题
实施例的文件:在这种情况下http://pastebin.com/u2GBnm2D
希望的输出是删除的行:
lmo0330 1 1 0 1
lmo0506 7 21 2 10
并保持与其它两行与列相同基因的id。最后解析的文件应该是这样的:http://pastebin.com/WgDkm5ui
这是我曾尝试(这并不做任何事情,但第一部分去除第二副本,而第二部分总和计数):
awk 'BEGIN {!a[$1]++} {for(i=1;i<=NF;i++) t+=$i; print t; t=0}'
我试图修改脚本的第二部分在这个问题的最佳答案:Removing lines containing a unique first field with awk?
awk 'FNR==NR{a[$1]++;next}(a[$1] > 1)' ./infile ./infile
但不幸的是我真的不明白这是怎么回事不够好,得到它的工作。谁能帮我吗?我想我需要更换a[$1] > 1
部分用[删除(第一重复计数或第二的副本计数取决于哪一个更大]
编辑:。我还使用了GNU AWK 3.1.7如果该事项
你的问题是好的,但它是h想明白,你到底想要什么。 – peterh
我在解析后添加了一个输出结果的链接,这有助于澄清问题吗? – 1225
这是一个非常古老的gawk版本,你应该更新它,因为你缺少很多非常有用的功能。 –