gpt4 book ai didi

regex - 如何终端输出命令管道到grep的输入并使用正则表达式?

转载 作者:行者123 更新时间:2023-12-04 19:10:08 25 4
gpt4 key购买 nike

我认为在 OSX 或 Linux 上获取 IP 地址会很容易学习如何在 grep 中使用正则表达式,但看起来我要么有语法错误,要么对所需内容有误解。

我知道这个正则表达式是正确的,虽然我知道它可能不是一个有效的 IP 地址,但我目前不考虑这一点。

(\d{1,3}\.){3}\d{1,3}

所以我不确定为什么这不起作用。
ifconfig | grep -e "(\d{1,3}\.){3}\d{1,3}"

最佳答案

两件事情:

一、-e有区别和 -E :-e只是说“接下来是一个表达式”,而 -E说:“使用扩展的正则表达式”。根据您使用的 grep 的确切版本,您需要 -E使事情正常工作。

其次,正如之前所指出的,-d并非所有版本的 grep 都能识别。我发现以下方法有效:由于 IP 地址是“常规”数字,因此我们不需要比 [0-9] 更花哨的东西。找到他们:

ifconfig | grep -E '([0-9]{1,3}\.){3}[0-9]{1,3}'

无需转义其他字符(在我的 grep 版本中 - 使用 OSX 10.7.5)

顺便说一句,在测试您的正则表达式时,您可以考虑使用类似
echo "10.1.15.123" | grep -E '([0-9]{1,3}\.){3}[0-9]{1,3}'

确认您的正则表达式正在工作 - 无论 ifconfig 的确切输出如何.它将问题分解为两个较小的问题,这通常是一个很好的策略。

关于regex - 如何终端输出命令管道到grep的输入并使用正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15712970/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com