파일의 숫자를 나누는 쉘 스크립트

파일의 숫자를 나누는 쉘 스크립트

1개의 열과 12개의 행이 있습니다. 각 행에는 숫자 값이 있습니다. 쉘(bash) 스크립트를 사용하여 각 행 값을 일부 상수(예: C)로 나누고 싶습니다. 어떻게 해야 하나요? 미리 감사드립니다..

답변1

martin@dogmeat ~ % cat test 
100
50
25
martin@dogmeat ~ % cat test | while read i; do echo "$i/2" | bc; done
50
25
12
martin@dogmeat ~ % cat test | while read i; do echo "scale = 5; $i/2.0" | bc; done
50.00000
25.00000
12.50000

bc반올림 기능이 없으므로 이러한 숫자를 올바르게 반올림하려면 함수를 직접 구현해야 할 수도 있습니다.

답변2

정수 나누기가 괜찮다면:

c=3
while read num; do
    echo $(( num / c ))
done < file

그렇지 않으면 다음을 사용할 수 있습니다.

awk -v c=3 '{ print $1/c }' file

답변3

쉘 부동 소수점 연산의 복잡성을 해결하기 위해 Perl을 사용하는 것은 어떨까요? 이를 수행하는 간단한 방법은 다음과 같습니다.

C=3 perl -ne 'printf "%.2f\n",$_/$ENV{C}' your_file

엄청난 답변이 문제당신도 관심이 있을 수 있습니다.

관련 정보