如何用grep命令(bash)提取十个结果的力量

时间:2016-04-12 16:08:41

标签: bash

我有一个程序以科学的python格式给我结果,如下所示:

10.0889E-002

例如。

我想使用grep命令(或awk)来提取此结果,但我找不到正确对待这个“E-002”的方法。相应的结果WITHOUT E-002(但要考虑它)将存储在变量中,以便我可以使用其他变量和数字进行所有类型的操作。

我认为我显然应该更好地使用python,但我现在正在寻找一个快速而肮脏的解决方案。

示例:

假设我有一个文件名只有一行包含:

10.0889E-002

或带有这种表示法的任何数字。

我想把它变成bash中的一个变量,但没有十符号的力量。在myfile.sh中:

a=`grep '' filename | awk '{print $1}'`

但这并没有考虑E-002,所以我可以用我的变量a进行各种操作。

3 个答案:

答案 0 :(得分:2)

使用printf

$ printf "%f\n" 10.0889E-002
0.100889

答案 1 :(得分:2)

awk可以解释得很好:

$ echo '10.0889E-002' | awk '{ print $1+0 }'
> 0.100889

答案 2 :(得分:-1)

这样的东西
-?\d*\.?\d+[eE]?-?\d*