我有一个制表符分隔文件,我想删除仅在前三列中相同的行(保留一个副本).我更喜欢使用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
Run Code Online (Sandbox Code Playgroud)
输出:
Supercontig_1.1 241783 286397 5677 52
Supercontig_1.2 10500 25700 3000 57
Supercontig_1.3 2000 7000 5686 60
Run Code Online (Sandbox Code Playgroud)
一种方式使用awk:
awk '!array[$1,$2,$3]++' file.txt
Run Code Online (Sandbox Code Playgroud)
结果:
Supercontig_1.1 241783 286397 5677 52
Supercontig_1.2 10500 25700 3000 57
Supercontig_1.3 2000 7000 5686 60
Run Code Online (Sandbox Code Playgroud)