linux - 如何在第一个字段上操作数学数据并分配变量 linux

标签 linux math field lines operation

我有一个只包含 2 个数字的文件。电子线上的一个号码。

4.1865E+02
4.1766E+02

我知道它的内容 BHF = ($1 from line 1 - $1 from line 2) 但可以找到确切的命令。

如何对它们进行数学运算并将结果保存到变量中。

PS:这是用

sed  -i -e '/^$/d' nodout15  
sed -i -e  's/^[ \t]*//;s/[ \t]*$//' nodout15  
awk ' {print $13} ' nodout15 > 15
mv 15 nodout15
sed  -i -e '/^$/d' nodout15  
sed -i -e  's/^[ \t]*//;s/[ \t]*$//' nodout15  
sed  -n '/^[0-9]\{1\}/p' nodout15  > 15
mv 15 nodout15
tail -2 nodout15 > 15
mv 15 nodout15

毕竟我有这两个数字,但现在我无法做一些算术运算。如果可能的话,请告诉我一个简短的表格来当场做,而不是做所有这些杂耍。 Nodout 是一个具有不同列长度的文件,所以我只对第 13 列感兴趣。由于所有行都不会出现在子文件中,因此删除了空行。然后只有那些以数字开头的行。然后是最后两行,因为它们显示了最终状态。它们之间的差异,将导致一个条件语句。所以我需要将它保存在一个变量中。

问候。

最佳答案

awk

$ BHF=`awk -v RS='' '{print $1-$2}' input.txt`
$ echo $BHF
0.99

公元前

$ BHF=`cat input.txt | xargs printf '%f-%f\n' | bc`
$ echo $BHF
.990000

关于linux - 如何在第一个字段上操作数学数据并分配变量 linux,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9499094/

相关文章:

c++ - Runge-Kutta 四阶积分器出错

java - 需要一个函数来限制一条线(通过其坐标已知)的长度

C++ 相当于 matlab regress() 函数

java - 如何以这种形式打印这个二维字符串数组而不需要太多的努力(java)?

python - 我如何监控 Python 进程并在它死掉时重新启动?

linux - Linux 程序如何知道它是如何启动 : from command line? 或由 cron 或其他东西启动的?

linux - 是否有将随机垃圾字节写入文件的命令?

php - [Linux, Ubuntu] : Executing a Python script with different users results in different behaviours

c# - 为什么这个语法是错误的?不能对一行中的多个属性使用 GET 和 SET

c# - 为什么我们需要静态私有(private)数组来初始化其他非静态私有(private)数组字段?