查找文件中每次出现的正则表达式

Dru*_*erB 2 regex unix linux grep

如何在文件中列出每个正则表达式的出现,其中一行可以多次包含正则表达式?

Example:
XXXXXXXXXX FOO3 XXXX FOO4 XXX
XXX FOO2 XXXX FOO9 XXXXXX FOO5

The result should be:
FOO3
FOO4
FOO2
FOO9
FOO5
Run Code Online (Sandbox Code Playgroud)

在这种情况下,正则表达式将是/FOO./.

Grep将返回至少匹配一次的每一行.但那就是我想要的.

Sam*_*Sam 7

您是否尝试过-o选项:(grep手册页)

-o, - only-matching仅显示与PATTERN匹配的匹配行的部分.


pro*_*eek 5

你的问题并不完全清楚,特别是因为示例数据是超级通用的.但是,这里有一些可能匹配的模式:

您的模式与FOO匹配,后跟任何与所有行匹配的字符.我不认为你想要那样尝试这样的事情:

/FOO[0-9]+/ - 匹配FOO后跟一个或多个数字.

/FOO[^ ]+/ - 匹配FOO,后跟任何不是空格的字符.鉴于您的示例模式,这可能是最佳解决方案.

/FOO[0-9a-zA-Z]+/ - 匹配FOO后跟任何字母数字字符