我有一个制表符分隔的文件,我想删除仅在前三列中相同的行(保留一个副本)。我更喜欢使用unix,例如awk或uniq。
输入文件:
Supercontig_1.1 241783 286397 5677 52
Supercontig_1.1 241783 286397 5678 53
Supercontig_1.1 241783 286397 5679 53
Supercontig_1.2 10500 25700 3000 57
Supercontig_1.2 10500 25700 3001 59
Supercontig_1.2 10500 25700 3002 59
Supercontig_1.3 2000 7000 5686 60
Supercontig_1.3 2000 7000 5687 60
输出:
Supercontig_1.1 241783 286397 5677 52
Supercontig_1.2 10500 25700 3000 57
Supercontig_1.3 2000 7000 5686 60
最佳答案
一种使用awk
的方法:
awk '!array[$1,$2,$3]++' file.txt
结果:
Supercontig_1.1 241783 286397 5677 52
Supercontig_1.2 10500 25700 3000 57
Supercontig_1.3 2000 7000 5686 60
关于unix - 当三列相同时删除行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12950882/