使用grep的正则表达式

约翰·梅里诺

我在这里有此命令:

grep -B10 -A10 '14:14:50 {"channels":["/alerts/6979/new"],"data":"New alerts for unit 6979"}' mygateway.log

与其搜索14:14:50,我不希望将50替换为任何数字。所以我当时想使用“。” 代表正则表达式中的任何字符。但是,在编程语言中,您通常用\ abc.xyz \表示正则表达式,其中“。”。可以是任意字符和任意数量的字符。但是当我使用“。” 在上面的grep字符串中,它什么也没给我。

约瑟夫·R。

这里的问题.是用来表示任何单个字符。因此,.将与5in匹配50但与匹配0,该行的其余部分将不匹配。无论如何,由于您知道要查找的是任何数字,因此您应使用正则表达式更具体。将任何数字与:

[0-9]\+

如果您知道此数字可以有一个可选的小数部分(在小数点后),则可以使用以下内容:

[0-9]\+\(\.[0-9]\+\)?

+如果您使用grep-P(PCRE)选项,则应省略和括号之前的反斜杠

如果确实打算使用该-P选项,则应该知道它不在POSIX标准中,并且可能并非在所有平台上都可用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章