Вопрос

I have a file contaning for just 2 numubers. One number on eash line.

4.1865E+02
4.1766E+02

I know its something line BHF = ($1 from line 1 - $1 from line 2 ) but can find the exact command.

How can I do a mathematical operation on them and save the result to a variable.

PS: This was got using

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

After all this I have these two numbers and now I am not able to do some arithmatics. If possible please tell me a short form to do it on the spot rather doing all this jugglary. Nodout is a file with different length of columns so I am only interested in 13th column. Since all lines wont be in the daughter file so , empty lines deleted. Then only those lines to be taken starting with number. Then the last two lines, as they show the final state. The difference between them , will lead to a conditional statement. so I need to save it in a variable.

regards.

Это было полезно?

Решение

awk

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

bc

$ BHF=`cat input.txt | xargs printf '%f-%f\n' | bc`
$ echo $BHF
.990000
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top