2
我有一個製表符分隔的文件,我想刪除僅在前三列中相同的行(保留一個副本)。我更喜歡使用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
作品。非常感謝! – Jon
小心 - 如果例如第一行包含「1 23 4」並且第二行包含「1 2 34」,因爲它們都映射到「1234」,那麼連接這樣的字段將會產生錯誤的輸出。您需要爲此使用僞多維數組:!a [$ 1,$ 2,$ 3] ++。 –
謝謝@EdMorton! - 小監督。我想我經常使用'FS',但即使這樣也會有問題。我做了一些測試,逗號實際上設置了空分隔符:'\ 0'。有趣。 – Steve