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