我想要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