我需要在包含以下字符串的 ascii 文件中获取 score 后面的数字:
iteration 32: score=0.126462
我想用 bash 来做。
所以输出应该是:
0.126462
我知道我必须使用正则表达式,但是我对它不是很熟悉,几个小时后我无法解决我的问题。
谢谢
编辑:不幸的是,有些解决方案对我不起作用,因为我不是在某个变量中硬编码字符串,而是在管道中传递。
cat kMeans.init-1.log | tail -2 | head -1 | CODE_SHOULD_GO_HERE
最佳答案
纯 bash 解决方案。
$ [[ "iteration 32: score=0.126462" =~ score=([0-9.]+) ]] && echo ${BASH_REMATCH[1]}
0.126462
通过grep,
$ echo 'iteration 32: score=0.126462' | grep -oP 'score=\K[\d.]+'
0.126462
关于regex - 使用 bash 和正则表达式获取字符串中的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28452298/