我有大量文本文件集合。
我正在寻找一种方法来查找集合中同一行(在同一个文件中)的两个字符串,其中这两个字符串之间的字符距离不大于我指定的距离。
例如,如果文本文件包含:
The quick brown fox jumps over the lazy dog
我传递字符串fox
,并且over
距离为 7(或更多),它将返回此行,因为 7 是这些单词之间的距离。
我正在运行一台 Windows 8 机器。
答案1
使用 egrep。或者 grep -e 选项。
egrep -o "fox.{1,7}over" filename.txt
一般来说是:
egrep -o "string1.{1,7}string2" filename.txt
所有上述选项都只返回匹配的部分。要返回整行,请不要使用 -o 选项。因此,结果如下:
egrep "string1.{1,7}string2" filename.txt
要将其应用于文件夹中的所有文件,您可以使用:
egrep "string1.{1,7}string2" *
所有这些都假设至少有一个字符分隔。