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

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

我有一个日志文件,其中列出了许多条目。使用 grep regex,我想匹配第一个单词和另一个可以位于字符串中任何位置的单词。

例如,如果我指定“user1”,则搜索将搜索:

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

但是,除非 user1 位于字符串的开头,否则不会匹配,而我希望只要它出现在字符串的任何位置,就可以匹配。如何实现呢?

答案1

我认为您的意思是您想要匹配以“IP_CONNECT”或“IP_DISCONNECT”开头的行,后跟一个或多个[大多数]任意字符,后跟“user1”。

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

您还可以找到类似正则表达式有助于探索这一点。

相关内容