首页 文章

Grep用另一个文件过滤一个文本文件(非常大的文件)

提问于
浏览
0

我会尽量保持这个尽可能简单,因为我不是那些经验丰富的grep / linux .

我有一个非常大的.txt文件(1.7GB),格式如下:

username:email:IP

我有另一个较小的.txt文件(大约100k行文本),只包含:

username

我想创建一个输出列表,其中包含在大型和小型.txt文件中找到的用户名(不区分大小写)但我希望它们也具有在较大的文本文件中找到的电子邮件和IP .

所以我的最终输出将采用以下格式:

username:email:IP

但它只包含在.txt文件中找到的用户名

1 回答

  • 2

    你只需要 grep-f 选项:

    grep -f smaller.txt large.txt
    

    如果您想使其不区分大小写,请使用 -i . 请注意,这将使 grep 方式更慢:

    grep -if smaller.txt large.txt
    

    测试

    小文件:

    $ cat small 
    me
    you
    him
    

    大文件:

    $ cat large 
    a1:aaa@bbb.com:123
    me:me@bbb.com:123
    a2:aaa@bbb.com:123
    YOU:you@bbb.com:123
    aaa:aaa@bbb.com:123
    

    火柴:

    $ grep -if small large
    me:me@bbb.com:123
    YOU:you@bbb.com:123
    

相关问题