【发布时间】:2015-06-30 07:22:12
【问题描述】:
我有一些行,其中第 1、第 8 和第 9 列基本相同。总行数远远超过 60K。现在我想简化只保留第 1、8 和 9 列相同的第一行。
输入文件:
chr exon_start exon_end cnv tumor_DOC control_DOC rationormalized_after_smoothing CNV_start CNV_end seg_mean
chr1 762097 762270 3 821 717 1.456610215 762097 6706109 1.297328502
chr1 861281 861490 3 101 117 1.29744744 762097 6706109 1.297328502
chr1 7868860 7869039 2 78 119 1.123385189 7796356 8921423 1.088752407
chr1 7869841 7870041 2 140 169 1.123385189 7796356 8921423 1.088752407
chr1 7870411 7870596 2 83 163 1.123385189 7796356 8921423 1.088752407
chr1 7879297 7879467 2 290 360 1.024742732 7796356 8921423 1.088752407
chr1 21012415 21012609 3 89 135 1.230421209 19536504 21054539 1.247494175
chr1 21013924 21014512 3 234 219 1.359224182 19536504 21054539 1.247494175
chr1 21016588 21016803 3 172 179 1.230421209 19536504 21054539 1.247494175
chr1 21024895 21025101 3 147 120 1.230421209 19536504 21054539 1.247494175
chr14 20920169 20920704 3 211 214 1.254261327 20840851 20923828 1.288877208
chr14 20922716 20922919 3 253 262 1.228396526 20840851 20923828 1.288877208
chr14 20923634 20923828 3 188 201 1.206226522 20840851 20923828 1.288877208
chr14 20924141 20924329 2 244 344 0.902299535 20924141 21465086 1.088234038
chr14 20924787 20925701 2 314 306 1.305351797 20924141 21465086 1.088234038
chr14 20926636 20926836 2 134 136 1.206226522 20924141 21465086 1.088234038
期望的输出:
chr exon_start exon_end cnv tumor_DOC control_DOC rationormalized_after_smoothing CNV_start CNV_end seg_mean
chr1 762097 762270 3 821 717 1.456610215 762097 6706109 1.297328502
chr1 7869841 7870041 2 140 169 1.123385189 7796356 8921423 1.088752407
chr1 21024895 21025101 3 147 120 1.230421209 19536504 21054539 1.247494175
chr14 20922716 20922919 3 253 262 1.228396526 20840851 20923828 1.288877208
chr14 20924141 20924329 2 244 344 0.902299535 20924141 21465086 1.088234038
我只为具有相似第 1 列、第 8 列和第 9 列的每个不同类别保留一行,最好是在有变化时只保留第一行。
如何在 awk、sed 或 R 中实现这一点?
【问题讨论】: