grep(POSIX)regex单行中空格之间的多个浮点



我想要FILE中的grep(posix(匹配浮点,该FILE只包含一行,其中浮点之间用空格分隔。

文件:

12 3.14 1.1.2.4

我的正则表达式是:

grep -E "^[[:digit:][:blank:].]*.?[[:digit:]]+$" FILE

regex已成功匹配"|12 | 3.14 | 1.1.2.4 |";在单行中,但是我们期望正常的浮点像"|12|3.14|">但不是"|1.1.2.4|";因为它包含多个无效浮点的点。有人能帮我用正确的正则表达式模式和grep(posix(来匹配一行中的浮点值吗?因为我使用grep作为函数来评估浮点值。

您可以尝试此grep:

grep -oE '(^|[[:blank:]])([[:digit:]]+(.[[:digit:]]+)?|.[[:digit:]]+)([[:blank:]]|$)' file
12
3.14

相关内容

  • 没有找到相关文章

最新更新