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

Linux Grep用一个文本文件过滤另一个文本文件(非常大的文件),linux,grep,centos,matching,Linux,Grep,Centos,Matching,我会尽可能地简单,因为我对grep/linux没有太多经验 我有一个非常大的.txt文件(1.7GB),其格式如下: username:email:IP username:email:IP 我还有一个较小的.txt文件(大约100k行文本),其中只包含: username 我想制作一个输出列表,其中包含在较大和较小的.txt文件中找到的用户名(不区分大小写),但我希望它们也包含在较大的文本文件中找到的电子邮件和IP 因此,我的最终输出将采用以下格式: username:email:IP

我会尽可能地简单,因为我对grep/linux没有太多经验

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

username:email:IP
username:email:IP
我还有一个较小的.txt文件(大约100k行文本),其中只包含:

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

因此,我的最终输出将采用以下格式:

username:email:IP
username:email:IP

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

您只需要
-f
选项
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
匹配项:

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

谢谢fedorqui,但是如果我想将它保存为.txt,我会这样做:grep-if small.txt large.txt>output.txt是的,这应该很好,@Natha。如果对你有用,请告诉我。如果是这样,请记住,您可以通过单击答案旁边的复选标记将其从空心切换为绿色来始终接受答案。看看你是否有任何疑问!