Categorized | 数据分析

Linux下大文件的排序和去重复

Posted on 20 十月 2009 by 柳城 ,阅读 1,240

Linux下我们用 sortuniq 的命令来实现去重复行。

去重复行

简单的用法如下,如一个文件名:happybirthday.txt

cat happybirthday.txt (显示文件内容)

Happy Birthday to You!
Happy Birthday to You!
Happy Birthday Dear Tux!
Happy Birthday to You!

cat happybirthday.txt|sort (排序)

Happy Birthday Dear Tux!
Happy Birthday to You!
Happy Birthday to You!
Happy Birthday to You!

cat happybirthday.txt|sort|uniq (去重复行)

Happy Birthday Dear Tux!
Happy Birthday to You!

去大文件重复行

但有时碰到一个大文件时(例如G级的文件),用上面的命令时报错,提示空间不足。我尝试了一下,最后是用 split 命令把大文件分割为几个小文件,单独排完序后再合并 uniq 。

split -b 200m  happybirthday.big Prefix_

用-b参数切割happybirthday.big,小文件为200M。切割后的文件名前缀是Prefix_

切割后的文件名如

Prefix_aa

Prefix_ab

再分别sort

sort Prefix_aa >Prefix_aa.sort

sort Prefix_ab >Prefix_ab.sort

再用 sort -m合并,再 uniq

cat Prefix_aa.sort Prefix_ab.sort |sort -m |uniq

上面的代码排序后还是不满意的话,可尝试下面的(2010-07-12更新):

sort -sm Prefix_aa.sort Prefix_ab.sort|uniq

这是好早前碰到的一个问题了。没记错的话应该是这么回事。~

sort 与 uniq 命令还有许多有用的参数,如sort -m、uniq -u、uniq -d等。sort 与 uniq的组合是很强大的。

~完。

转载请注明 : 来源于 Linux下大文件的排序和去重复 | 柳城

赞助商

13条评论 于 “Linux下大文件的排序和去重复”

  1. kangzj kangzj Says:

    这些命令学熟了是相当有用啊

    [回复]

    Lc.
    Lc. 回复:

    那是,还有sed ,awk我也非常喜欢用

    [回复]

    kangzj
    kangzj 回复:

    我比较喜欢grep,一开始就接触这个,后来就只用这个了,呵呵

    [回复]

    Lc.
    Lc. 回复:

    :ws: grep我也喜欢用啊.用于快速查找与匹配是非常不错的. 不过,复杂的事情就要sed 跟awk了.

    [回复]

  2. 久酷 久酷 Says:

    sort uniq 不错不错. :cy: :cy:

    [回复]

  3. mimzyx mimzyx Says:

    我只当豆芽菜,一排排的pass pass pass

    [回复]

  4. 减肥产品排行榜 减肥产品排行榜 Says:

    绝对技术帖啊 收藏先 谢谢博主分享。。

    [回复]

  5. 我买糕的。 我买糕的。 Says:

    半瓶水飘过。

    [回复]

  6. SUN SUN Says:

    希望柳城能多写点这种帖子,我在这顶了。十分受教

    [回复]

    柳城
    柳城 回复:

    呵。过奖了。 这方面还是蛮多的可以分享的。。有空多写。。 [抱拳]

    [回复]

  7. 呐喊 呐喊 Says:

    分享了你的技术贴,受教颇深 [抱拳]
    但我有个小问题想请教一下,在去大文件重复行时,先分割再合并,如果Prefix_aa和Prefix_ab中同有一个“gediao”这一行,因为sort -m 只合并不排序,所以最后不会去除gediao 这个重复行是不是?

    [回复]

    柳城
    柳城 回复:

    马上试了一下,的确是啊。这方法还是有很大的缺陷啊。
    杯具~ 想不出更好的办法了 [可怜]

    [回复]

Leave a Reply

广告招租

[强] [握手] [可爱] [ok] [呲牙] :) [偷笑] [流泪] [疑问] [亲亲] [擦汗] [得意] [衰] [可怜] [抱拳] [坏笑] more »

无觅相关文章插件,快速提升流量

adobe free

adobe free

winrar 3 download

winrar 3 download freedownload

windows 7 free

windows 7 crack

key office 2010

office 2010 key

download photo shop free

photo shop serial

corel dvd moviefactory 6

corel dvd moviefactory 6 downloads

free corel photoshop download

free corel photoshop download keygen

photoshop key

photoshop key

free corel downloads

free corel downloads cracked

free winrar download for xp

download winrar for xp for free

serial corel draw 11

serial corel draw 11 serials

windows 7 key

windows 7 key

photo shop key

photo shop key

winrar password cracker serial

wirar password cracker

serial winzip 11

serial winzip 11 key

cs5 serialz

cs5 serialz free

office 2010 professional key

office 2010 key

office 2010 free

office 2010 key

windows key

windows key