我使用$xavg | sed -r 's/^([^.]+).*$/\1/; s/^[^0-9]*([0-9]+).*$/\1/'
上一篇文章 从字符串中提取第一个数字,
但这只给了我小数点前的分数。我想要第一个浮点数。
例如 :-
“abjhjdw20.39auh201”在这个字符串中我只想要第一个浮点数 20.39
同样在我下面的 bash 脚本中:-
nzsql -c 'create table Input1(x integer, y integer, v integer)'
nzload -t Input1 -df InputTable.txt
xavg=`nzsql -c 'select avg(x) from Input1'`
echo $xavg | sed -r 's/^([^.]+).*$/\1/; s/^[^0-9]*([0-9]+).*$/\1/'
aum=xavg
yavg=`nzsql -c 'select avg(y) from Input1'`
echo $yavg | sed -r 's/^([^.]+).*$/\1/; s/^[^0-9]*([0-9]+).*$/\1/'
nol=yavg
echo $nol
nzsql -c 'select S4(x,y,aum,nol) from test'
=======下面输出=======
CREATE TABLE
Load session of table 'INPUT1' completed successfully
2
1
yavg
ERROR: Attribute 'AUM' not found
实际平均值为 2.3 和 1.6
这是使用上述正则表达式提取的,并nzsql -c 'select S4(x,y,aum,nol) from test'
为“AUM”提供错误,但当我回显它给出 2 时,会打印相同的值。
如果有人可以帮助我处理正则表达式和 S4(x,y,aum,nol) 中的错误,我将不胜感激