我正在处理一个包含以下内容的.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脚本最简单的方法是什么?
答案 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")'