grep AND OR 运算符与 IP 地址相结合

grep AND OR 运算符与 IP 地址相结合

我正在尝试寻找一种简化 grep 搜索并使其更加细化的方法。

我想要实现的一个例子:netstat 输出搜索特定的 IP 和单词 established 或另一个 IP 和另一个字符串。

如果没有 OR 语句,我可以通过运行另一个 grep 来解决这个问题,但我“需要” OR 语句。

我很满意grep 'string1\|string2'执行 OR 查询并grep 'string1.*string2 *\|string3'找到“string1 and string2”或“string3”。将 IP 混入其中让我不知所措,小数被视为另一个 AND 语句(我认为?)并且用作\转义字符似乎也不起作用。有人能解释我该如何实现这一点吗?

我目前使用的内容:

grep -i '1\.2\.3\.4.*established*\|5\.6.\7\.8.*listening*' netstatoutput.txt

答案1

我建议使用grep -E扩展的正则表达式(更少的反斜杠)。

使用括号进行分组:

grep -Ei '(1\.2\.3\.4.*established)|(5\.6.\7\.8.*listening)' netstatoutput.txt

或者使用-e选项

grep -Ei -e '1\.2\.3\.4.*established' -e '5\.6.\7\.8.*listening' netstatoutput.txt

相关内容