代码之家  ›  专栏  ›  技术社区  ›  Sir Robert

在linux中,如何从一个非常大的文件中获得唯一的行?

  •  4
  • Sir Robert  · 技术社区  · 7 年前

    通常我会使用,比如:

    pv myfile.data | sort | uniq > myfile.data.uniq
    

    split ,并进行流式处理 uniq 在一个新文件中一次大约500K行。有没有办法做到这一点?

    我想我可以做一些类似的事情

    tail -100000 myfile.data | sort | uniq >> myfile.uniq && trunc --magicstuff myfile.data
    

    但我想不出一种方法来正确截断文件。

    1 回复  |  直到 7 年前
        1
  •  14
  •   that other guy    7 年前

    使用 sort -u sort | uniq

    sort 为了尽早丢弃重复项,GNU coreutils足够聪明,可以利用这一点。