我在 test.txt 文件中有两个数字,我想要一种方法将第二个数字除以第一个数字并将结果分配给我可以使用的 bash 脚本中的变量或文件。我曾经awk "NR==1" test.txt
在命令行上显示 number1,但在脚本内部,我尝试过awk "NR==2" test.txt / awk "NR==1" test.txt
所有此类的引号/括号组合。命令行使用给出 num2/num1 作为结果,而不是除法结果或给出语法错误。我使用 Debian Linux 作为操作系统。 test.txt 文件包含
0250368000
0182885654
我想要第二个数字除以第一个数字。var=0182885654/0250368000
数字会不时变化,我想要一个可以处理这些数字的脚本。
答案1
分配给变量
var=$(awk 'NR==1{a=$0}NR==2{print $0/a}' test.txt)
或输出到文件:
awk 'NR==1{a=$0}NR==2{print $0/a}' test.txt > output
答案2
quotient=$(dc -f test.txt -e 'r[num desired precision]k/p')
答案3
awk ' NR == 1 { a = $1 }
NR == 2 { b = $1 }
END { print a
print b
print b/a } ' data
其中 data 是一个文本文件,其中包含:
0250368000
0182885654
答案4
我使用了一种古老的一步一步的技巧来获得一些有用的东西,但我希望一步一步完成这一切。
num1=$(awk 'NR==2' test1.txt)
echo $num1 #result is 0247421924
num2=$(awk 'NR==1' test1.txt)
echo $num2 #result is 0250368000
score=`awk 'BEGIN{printf("%0.0f", '$num1' * 100 / '$num2' )}'`
echo $score # result is 99
正如您所看到的,我必须将第一个数字乘以 100 才能得到一个整数。抱歉,无法使行间距发挥作用