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
엄청난 답변이 문제당신도 관심이 있을 수 있습니다.