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

grep(POSIX)regex单行中空格之间的多个浮点,regex,grep,floating-point,posix,Regex,Grep,Floating Point,Posix,我希望grep(posix)匹配文件中的浮点,该文件只包含一行,其中浮点之间用空格分隔 文件: 12 3.14 1.1.2.4 我的正则表达式是: grep -E "^[[:digit:][:blank:]\.]*\.?[[:digit:]]+$" FILE 正则表达式在单行中成功地匹配了“| 12 | 3.14 | 1.1.2.4 |”, 但我们期望正常浮点像“|12 | 3.14 |”一样匹配,而不是“|1.1.2.4|”,因为它包含多个无效浮点的点。 有谁能帮我使用

我希望grep(posix)匹配文件中的浮点,该文件只包含一行,其中浮点之间用空格分隔

文件:

12 3.14 1.1.2.4
我的正则表达式是:

grep -E "^[[:digit:][:blank:]\.]*\.?[[:digit:]]+$" FILE
正则表达式在单行中成功地匹配了“| 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:][].$)文件
12
3.14