我正在寻找一个用于搜索文件中的文本字符串列表的搜索引擎。我不会使用只查找一行的程序,因为我需要搜索多个文本字符串,并且该程序会在扩展名为 .txt 的所有文件中执行搜索。
搜索的文本字符串列表仅供程序在每个文件中逐个搜索。搜索完成后,程序应显示与列表中指定的一个或多个文本字符串匹配的文件。
答案1
您可以grep
在命令行中使用:
grep -Fl -f list *.txt
list
是一个包含您要查找的字符串列表的文件,它将.txt
在您运行该命令的所有文件中查找它们。
或者递归搜索:
grep -Frl --include='*.txt' -f list .
-f 从文件中获取模式,每行一个。
这里有一个例子,我有三个文件:“1.txt”,“2.txt”和“3.txt”。
1.txt:
a
b
c
2.txt:
a
b
c
d
3.txt:
e
f
g
列表文件包含:
a
d
运行后grep -Fl -f list *.txt
得到的是:
1.txt
2.txt
-l
仅显示文件名。
-f
定义一个包含字符串列表的文件
-F
将 PATTERN 解释为固定字符串列表(而不是正则表达式)