正则expression式匹配第一个单词和任何单词

我有一个包含许多条目列表的日志文件。 用grep正则expression式我想匹配第一个单词和另一个可以在任何string中的单词。

例如,如果我指定“user1”,search将search:

grep -E '^(IP_CONNECT|IP_DISCONNECT) user1' file.txt

然而,这将不匹配,除非user1在string的开始,而我想匹配它,如果它出现在string中的任何地方。 这是怎么做的?

我想你的意思是你想要匹配以“IP_CONNECT”或“IP_DISCONNECT”开头的行,后跟一个或多个[most]任何字符,后跟“user1”。

 grep -E '^(IP_CONNECT|IP_DISCONNECT).+user1' file.txt 

你也可能会发现像regexpal这样的工具有助于探索这个。