我一直在寻找一些如何删除我的csv文件的重复项。我从一个包含多个字段的文件开始,但后来我意识到我可以使用一个带有2个字段的文件,然后使用第一个字段合并文件。这是我想要做的:我有这个文件CSV file,你可以看到有多个基因有多个描述。他们中的一些有两个描述,一个是假设的蛋白质"和其他是"别的"。在那种情况下,我想删除一个假想的蛋白质#34;并保持"其他东西"。但是,如果有多个描述,我可以保留第一个描述。我一直用awk尝试它。如果我可以使用awk它会很棒。
输入示例:
AAEL018330 hypothetical protein
AAEL018330 tropomyosin, putative
AAEL018331 hypothetical protein
AAEL018332
AAEL018333 hypothetical protein
AAEL018333 colmedin
想要输出:
AAEL018330 tropomyosin, putative
AAEL018331 hypothetical protein
AAEL018332
AAEL018333 colmedin
谢谢。
答案 0 :(得分:1)
在一般(未分类)的情况下,如果你想保留一行一行的最后一个条目,你可以使用类似的东西:
awk '{seen[$1]=$0} END {for (i in seen) {print seen[i]}}' file
虽然不能保证排序顺序。
在这种情况下,对于排序的输入,这样的东西应该起作用:
awk 'f!=$1 && line{print line} {f=$1; line=$0} END {print line}' file