问题描述
我想一次从file1.txt抓取一行(1个术语)并搜索sFile.txt ...输出其中包含找到的术语的所有行。 file1.txt(300行)sFile.txt(100k行)。我想使用命令行(linux)fgrep
,ack
,find
等。我尝试了fgrep命令,但由于达到了字符限制,因此没有任何处理。
尝试:fgrep -wi 'front1' test.log >> final.txt
可行,但是在添加file1.txt
时该进程无法运行
file1.txt 结构(不区分大小写)
front1
front2
FrOnT3
sFile.txt 结构
106.4 - - [12/Aug/2020:10:46:57 -0400] "GET /skin/front1/sharp_bootstrap/default/css"
106.4 - - [12/Aug/2020:10:46:57 -0400] "GET /skin/front3/sharp_bootstrap/default/css"
106.4 - - [12/Aug/2020:10:46:57 -0400] "GET /skin/front2/sharp_bootstrap/default/css"
106.4 - - [12/Aug/2020:10:46:57 -0400] "GET /skin/front0/sharp_bootstrap/default/css"
final.txt 应该已经找到三行
106.4 - - [12/Aug/2020:10:46:57 -0400] "GET /skin/front1/sharp_bootstrap/default/css"
106.4 - - [12/Aug/2020:10:46:57 -0400] "GET /skin/front3/sharp_bootstrap/default/css"
106.4 - - [12/Aug/2020:10:46:57 -0400] "GET /skin/front2/sharp_bootstrap/default/css"
解决方法
稍微修改@thanasisp的内容,如果使用以下内容,您是否未获得所需的输出?
grep -if file1.txt sFile.txt
,
我找到了解决方法... Source for Solution
fgrep -v -F -f file1.txt sFile.txt