Program Club

Linux 콘솔에서 어떻게 나누나요?

proclub 2020. 10. 31. 10:18
반응형

Linux 콘솔에서 어떻게 나누나요?


나는 변수가 있어야하고 하나를 다른 것으로 나눈 값을 찾고 싶습니다. 이 작업을 수행하려면 어떤 명령을 사용해야합니까?


bash 셸에서 산술 표현식을 $(( ... ))

$ echo $(( 7 / 3 ))
2

나는 당신이 정수로 제한되어 있다고 생각하지만.


echo 5/2 | bc -l

2.50000000000000000000

'bc'의이 '-l'옵션은 부동 결과를 허용합니다.


더 나은 방법은 임의 정밀도 계산기 인 "bc"를 사용하는 것입니다.

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

전의:

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

여기서 "scale = 5"는 정확도입니다.

man bc 

몇 가지 사용 예가 함께 제공됩니다.


여전히 RPN 계산기 인 dc 사용을 선호 하므로 67을 4 자리 정밀도로 18로 나누는 빠른 세션은 다음과 같습니다.

>dc
4k
67
18/p
3.7222
q
>

분명히, 훨씬 더 많은 것을 사용할 수 있습니다 : man dc


데이터 추출을 위해 설계된 유틸리티 / 언어 인 awk사용할 수 있습니다.

예 : 1.2 / 3.4

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

bash에서 부서에 소수가 필요하지 않으면 다음을 수행 할 수 있습니다.

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

Linux 콘솔에서 Bash 를 의미 한다고 가정합니다 .

만약 XY당신의 변수입니다 $(($X / $Y))당신이 무엇을 물어 돌아갑니다.


bash를 사용하여 $ a를 $ b로 나누는 정수 나누기의 예 :

echo $((a/b))

레이트 레이싱의 답변을 사용하여 할 수있는 다른 작업. 백틱을 사용하는 다른 쉘 호출의 stdout을 사용하여 계산을 수행 할 수 있습니다. 예를 들어 몇 개의 파일에서 상위 100 개 행의 파일 크기를 알고 싶었습니다. 원래 크기 wc -c는 바이트 단위입니다. 킬로바이트를 알고 싶습니다. 내가 한 일은 다음과 같습니다.

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

다음을 사용해야합니다.

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

perl -e를 사용할 수도 있습니다.

perl -e 'print 67/8'

나도 같은 문제가 있었다. 정수를 나누는 것은 쉽지만 십진수는 그렇게 쉽지 않습니다. 3.14와 2.35와 같은 2 개의 숫자가 있고 숫자를 나누면 코드는 Division = echo 3.14 / 2.35 | bcecho "$ Division"이됩니다. 따옴표는 다릅니다. 혼동하지 마십시오. 키보드의 esc 버튼 바로 아래에 있습니다. 유일한 차이점은 | bc 및 여기에서도 echo는 인쇄 대신 산술 계산을위한 연산자로 작동합니다. 그래서 값을 인쇄하기 위해 echo "$ Division"을 추가했습니다. 그것이 당신을 위해 작동하는지 알려주십시오. 감사합니다.

참고 URL : https://stackoverflow.com/questions/1088098/how-do-i-divide-in-the-linux-console

반응형