如何从文本文件中提取行,其中字符串出现多次?

时间:2017-07-14 11:27:40

标签: regex ultraedit

我有一个包含多行的文本文件。在每一行中都会出现一次或多次某个字符串。我想提取字符串出现多次的所有行,并将这些行写入单独的文本文件。

我的尝试将覆盖正则表达式,我会找到&在UltraEdit中替换。 UltraEdit中的RegEx怎么样?

2 个答案:

答案 0 :(得分:0)

我不确定UltraEdit,但这很容易。 grep .*STRING.*STRING.* myfile.file > output.file

这会搜索myfile.file任意两次出现STRING的行,并将其输出到文件output.file

如果是Windows,请使用findstr .*STRING.*STRING.* myfile.file > output.file。同样的结果,请检查output.file以查找包含两个(或更多)STRING次出现的完整行。

答案 1 :(得分:0)

从版本12开始,UltraEdit for Windows中有3个正则表达式引擎。

正则表达式在使用三个表达式中的任何一个时都很简单。

UltraEdit 正则表达式搜索字符串:string?+string

?与换行符不匹配。因此,除了。之间的换行符之外,一行必须包含string两次其他字符。

Unix Perl 正则表达式搜索字符串:string.+string

.与换行符不匹配(默认情况下)。因此,除了。之间的换行符之外,一行必须包含string两次其他字符。

使用 Perl ,如果肯定匹配应该要求\bstring\b.+\bstring\b是一个完整的单词,例如包含string的行,则也可以使用strings or substring

生成正匹配的行可以写入查找字符串列表窗口,其中包含查找选项包含字符串的列表行,并通过上下文菜单从此窗口复制到新的文件。

也可以使用查找选项过滤行并选择显示,以便仅显示包含string的行至少两次。

进一步在文件中查找,选择打开文件并选择结果编辑窗口选中,可以执行以查找已找到的行根据高级 - 设置配置 - 搜索 - 设置查找输出格式中定义的配置,没有或包含其他信息的新文件。当然也可以在没有选项的情况下运行在文件中查找 结果编辑窗口,以便将找到的行写入活动输出窗口选项卡。

Find strings with a regular expression and output them to new file中记录了UltraEdit脚本,以便使用正则表达式将活动文件字符串grep到新文件中。