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

时间:2014-08-19 13:54:12

标签: linux grep centos matching

我会尽量保持这个简单,因为我不熟悉grep / linux。

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

username:email:IP

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

username

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

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

username:email:IP

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

1 个答案:

答案 0 :(得分:2)

您只需要-f的{​​{1}}选项:

grep

如果您想使其不区分大小写,请使用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