Grep 匹配正则表达式的第一个字符串
我想获取与我的正则表达式匹配的第一个字符串。 例如我有字符串
来自未知的 RCPT[211.147.3.74]:450 4.7.1 客户端主机被拒绝:找不到您的主机名,[211.147.3.74];
我的脚本如下所示:
IP=`echo $LINE | grep -E -o --max-count=1 '(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)'`
echo $IP
结果我得到
211.147.3.74 211.147.3.74
但我只想获取一次 IP。我尝试了 'grep --max-count=1' 但仍然有两个 ip。
I want to get the first string that matches my regular expression.
For example I have the String
RCPT from unknown[211.147.3.74]: 450 4.7.1 Client host rejected: cannot find your hostname, [211.147.3.74];
and my script looks like this:
IP=`echo $LINE | grep -E -o --max-count=1 '(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)'`
echo $IP
As result I get
211.147.3.74 211.147.3.74
But I would like to get the IP only once. I tried 'grep --max-count=1' but there are still two ip's.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
或从此处
or from here