예를 들어 다음과 같은 출력이 있습니다 bc
.
입력하다:
echo "scale=10; BLA-BLA-HERE-NOT-IMPORTANT" | bc
산출:
.3708446283953709207058828124021300754352578903651372655882743141882\
77124645102027246581819139527644919407424570060822470537797066353573\
96635.8038454068 days
두 가지 질문:
- 출력을 "0.3708..."과 같은 값으로 반올림할 수 있습니까?
- 끝에 "\n" -s를 제거할 수 있나요?
.NET에서 최대 너비 옵션을 찾을 수 없습니다 bc
.
답변1
GNU 구현을 사용하면 백슬래시+줄바꿈 기능을 비활성화하거나 확장하는 bc
환경 변수를 설정할 수 있습니다 . BC_LINE_LENGTH
최신 버전에서는 다음과 같이 0 값을 사용하여 비활성화할 수 있습니다.
BC_LINE_LENGTH=0 bc <<<"2^4096"
이전 버전에는 "0 끄기" 기능이 없었으며 사용자에게 영향을 주지 않도록 값을 충분히 큰 값으로 설정해야 했습니다.
BC_LINE_LENGTH=10000 bc <<<"2^4096"
bc를 많이 사용하고 줄 바꿈을 좋아하지 않는 경우 셸에 설정하는 좋은 환경 변수처럼 보입니다. 를 사용하는 경우 bash
다음을 다음 항목에 입력하세요 .bashrc
.
export BC_LINE_LENGTH=0
답변2
다음과 같은 코드를 시도해 볼 수 있습니다.
echo "scale = 4; 3.5678/3" | bc | tr '\n' ' '
scale
로 설정하면 bc
반올림 작업이 수행됩니다. 나눗셈 부분을 원하는 명령어로 대체할 수 있습니다. 출력은 bc
다시 로 파이프되어 tr
개행 문자( \n
)를 공백으로 변환합니다. 위 명령의 경우 다음과 같은 출력을 얻습니다.
1.1892 user@localhost:~/codes$
답변3
$ OUT=$(bc <<< "2 ^ 256")
$ echo "$OUT"
11579208923731619542357098500868790785326998466564056403945758400791\
3129639936
$ OUT=${OUT//$'\\\n'/}
$ echo "$OUT"
115792089237316195423570985008687907853269984665640564039457584007913129639936
답변4
그러니 그냥 스스로 대답할 수도 있겠지만, 모든 것을 합친 결과는 다음과 같습니다.
BC_LINE_LENGTH=10000 bc -l <<< "scale=200;1/3" | tr "\n" " "
예를 들어 에너지 소비량 계산
BC_LINE_LENGTH=10000 bc -l <<< "scale=2;`cat /sys/class/power_supply/BAT1/energy_now`/1000000"