我有一个看起来像这样的文件(3列和n行)
chr8 101999980 102031975
chr8 101999980 102033533
chr8 101999980 102033533
chr8 101999980 102032736
chr8 101999980 102034799
chr8 101999980 102034799
chr8 101999980 102034397
chr8 101999980 102032736
从这些数据中我想删除多余的行,这些精确的重复数据可以使用bash脚本存在于此数据集的任何位置。
答案 0 :(得分:4)
如果维持订单很重要:
awk '!c[$0]++' filename
这可以理解如下:
c[$0]
),++
)保持此类行数的值,!
)
n++
返回0,如果n未设置则返回false {print}
答案 1 :(得分:3)
答案 2 :(得分:1)
sort yourfile | uniq > outputfile
如果订单无关紧要。
它适用于相邻的相同行,这就是你需要排序的原因。在您的文件中,您不需要排序,因为重复项紧挨着彼此。如果这不是标准情况,则需要先对文件进行排序。
$ uniq yourfile | wc -l
6
$ sort yourfile | uniq | wc -l
6
有和没有排序都返回6行,但你没有说它是默认值。