Site icon Mr. 沙先生

Linux 用 awk 加減乘除、取整數、四捨五入

最近在用 bash 寫一支監控的時候用到了很多運算式,用 bash 還真的有點雞肋,但其實只是一個簡單的監控,所以也懶得用其他語言寫了。

 

首先在 Linux 上要用加減乘除不外乎就是 bc

$ echo "5 + 2" | bc
7

$ echo "5 * 2" | bc
10

 

但是 bc 的除法就會有小數點

$ echo "43 / 0.6" | bc
25.8

 

取整數

有時候只是要拿來比大小的話,小數點就很麻煩,所以乾脆取整數 …

 

awk 的乘除就是直接取整數,用上 int 就可以取整數

$ echo | awk '{print int(43*0.6)}'
25

 

沒用 int 跟 bc 的結果一樣

$ echo | awk '{print 43*0.6}'
25.8

 

四捨五入

四捨五入的話就再加上 0.5 使其變成 +1 or -1 的整數就好:

值 25.2 + 0.5,所以取到 25

$ echo | awk '{print int(42*0.6+0.5)}'
25

 

值 25.8 + 0.5,所以取到 26

$ echo | awk '{print int(43*0.6+0.5)}'
26

 

簡單記錄下來,下次可能又忘記了 …

 

 

Exit mobile version