我有以下输入。
Curveplot
Time
Maxima of Curve
Part no.
13 #pts=2
* Minval= 0.000000e+000 at time= 0.000000
* Maxval= 2.237295e+000 at time= 0.001000
0.000000e+000 0.000000e+000
9.999999e-004 2.237295e+000
endcurve
我想从此文件中获取最大值,这是Maxval之后的值
* Maxval= 2.237295e+000
有人可以建议如何使用linux sed吗?
我的输出将只有数字2.237295e + 000。
最佳答案
使用以下单行代码将仅显示2.237295e+000
sed -nr 's/.*Maxval= *([^ ]*).*/\1/p'
正则表达式:
Match:
.* # match any characters
Maxval= # upto 'Maxval='
* # match multiple spaces (that is a space followed by *)
([^ ]) # match anything not a space, use brackets to capture (save this)
.* # match the rest of line
Replace with:
\1 # the value that a was captured in the first set of brackets.
因此,我们有效地用
Maxval=
的值替换了包含Maxval
的整个行。注意:根据
sed
的平台和/或实现,您可能需要使用-E
而不是-r
。