Bash テキストファイルの数の除算

Bash テキストファイルの数の除算

test.txtファイルに2つの数字があり、2番目の数字を最初の数字に分割し、結果を使用できるbashスクリプト内の変数またはファイルに割り当てる方法が必要です。私はコマンドラインに数字1を表示しましたが、awk "NR==1" test.txtスクリプト内ではawk "NR==2" test.txt / awk "NR==1" test.txtそのような引用符/括弧の組み合わせをすべて試しました。コマンドラインを使用すると、除算結果や構文エラーが発生するのではなく、結果としてnum2 / num1が表示されます。私はDebian Linuxをオペレーティングシステムとして使用します。 test.txt ファイルには以下が含まれます。

0250368000
0182885654

2番目の数字を最初の数字に分割したいです。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

ここで、データは以下を含むテキストファイルです。

0250368000
0182885654

答え4

有用なものを得るために古い段階的な技術を使用しましたが、すべてを1つのステップで実行したいと思います。

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を掛ける必要があります。申し訳ありません。行間隔を適用できません。

関連情報