使用脚本读取数字的最简单方法

时间:2017-07-05 17:45:15

标签: linux bash sh

我正在处理一个包含以下内容的.txt文件:

###################################################
Optimization for H260_ptyy275tau42.475C1.08_Analyzed.root

SOME TEXT


ptyy > -25
Significance: 1.79789e-05 +- 7.31008e-08
N_sig: 3.30335e-05 +- 3.15914e-05; N_SMbkg: 1.61124 +- 0.0612171; N_yyBackground: 1.76462 +- 0.469689
Fit function f=exp(a+b*x) with a = 0.567933 +- 0.266166 and b = -1.58821e-09 +- 0.00982024
Fit = 1.76462+-0.469689, sbL = 21+-4.58258 & sbT = 1+-1

MORE TEXT AND NUMBERS

我现在想要读取N_sig之后的数字,直到0.469689,每个都在一个不同的变量中。使用.sh或python脚本最简单的方法是什么?

1 个答案:

答案 0 :(得分:1)

使用GNU grep,bash和数组:

mapfile -t array < <(grep ^N_sig file | grep -oE '[0-9.e-]{2,}')

declare -p array

输出:

declare -a array='([0]="3.30335e-05" [1]="3.15914e-05" [2]="1.61124" [3]="0.0612171" [4]="1.76462" [5]="0.469689")'