这是一个作业,所以我别无选择,只能使用 sed。
给定一个文件messages,我如何提取所有 IP 地址并打印它们?
我第一次尝试
sed -n '/((1?[0-9][0-9]?|2[0-4][0-9]|25[0-5])\.){3}(1?[0-9][0-9]?|2[0-4][0-9]|25[0-5])/p' messages
但它什么也没打印。在做了一些研究后,我发现 sed 不支持非贪婪运算符,如 ? 和|。
我一直在绞尽脑汁,但如果没有非贪婪的运营商,我想不出办法做到这一点。我怎样才能做到这一点?