web-dev-qa-db-ja.com

Linuxコンソールで分割するにはどうすればよいですか?

変数が必要で、一方の値を他方で割った値を見つけたいです。これを行うにはどのコマンドを使用する必要がありますか?

70
kman99

Bashシェルで、算術式を$(( ... ))で囲みます

$ echo $(( 7 / 3 ))
2

整数に制限されていると思いますが。

66
dave4420
echo 5/2 | bc -l

2.50000000000000000000

'bc'のこの '-l'オプションは、浮動結果を許可します

38
raytrace

より良い方法は、任意精度の計算機である「bc」を使用することです。

variable=$(echo "OPTIONS; OPERATIONS" | bc)

例:

my_var=$(echo "scale=5; $temp_var/100 + $temp_var2" | bc)

ここで、「scale = 5」は精度です。

man bc 

いくつかの使用例が付属しています。

16
user1504475

awk を使用できます。これは、データ抽出用に設計されたユーティリティ/言語です

例えば1.2/3.4の場合

>echo 1.2 3.4 | awk '{ print $2/$1 }'
0.352941
11
jperrie

私はまだdcを使用することを好みます。これはRPN計算機であるため、4桁の精度で67を18で除算するクイックセッションは次のようになります。

>dc
4k
67
18/p
3.7222
q
>

明らかに、はるかに利用可能:man dc

11
libjack

Bashでは、部門に小数が必要ない場合、次のことができます。

>echo $((5+6))
11
>echo $((10/2))
5
>echo $((10/3))
3
8
Mark Rushakoff

LinuxコンソールBashを意味すると思います。

XYが変数の場合、$(($X / $Y))は要求されたものを返します。

5
Paolo Capriotti

Bashを使用して$ aを$ bで除算する整数除算の例:

echo $((a/b))
2
Draemon

レイトレースの答えを使用して他にできること。バックティックを使用して別のシェル呼び出しの標準出力を使用して、いくつかの計算を行うことができます。たとえば、いくつかのファイルの上位100行のファイルサイズを知りたいと思いました。 wc -cの元のサイズはバイト単位です。キロバイトを知りたいです。私がやったことは次のとおりです。

echo `cat * | head -n 100 | wc -c` / 1024 | bc -l
2
2upmedia

あなたが使用しようとする必要があります:

echo "scale=4;$variablename/3"|bc
1
JADAV AKASH

perl -eも使用できます

Perl -e 'print 67/8'
1
lsiebert