adsense_in_article_test


[bash: bc, sed] 1보다 작거나 -1보다 큰 계산 결과에서 앞자리에 0 표시하기 (.5 -> 0.5) 리눅스 bash script

우선, 리눅스에서 bc를 이용한 산수 계산에 대한 기본적인 내용은 이전 게시물을 참고하자. 여기로

bc로 계산한 결과 값이 -1에서 1 사이일 경우, 정수 자리의 0은 표시되지 않는다. 아래의 예시를 보자.

echo "scale=2; 10/11" | bc
.90

echo "scale=2; -11/12" | bc
-.91

위의 예시에 나온 결과값을 0.90, -0.91 이렇게 표시해 주고 싶을 경우, bc 자체적인 옵션은 없는듯하고, sed를 이용해서 아래와 같이 대체를 해 줄 수 있다. sed를 이용한 문자열 대체의 기본은 여기로

결과값이 양수일 경우와 음수일 경우를 각각 대체해야 하므로, sed에 -e 옵션을 사용하여 두가지 대체 방법을 지정해 준다. -e 옵션에 대한 내용은 여기로

echo "scale=2; 10/11" | bc | sed -e 's/^-\./-0\./' -e s'/^\./0\./'
0.90

echo "scale=2; -11/12" | bc | | sed -e 's/^-\./-0\./' -e s'/^\./0\./'
-0.91

대체 규칙을 설명하자면, 정규표현식의 "^" 기호를 이용하여 "."으로 시작하는 문자열(^.)을 "0."으로 대체하고 "-."으로 시작하는 문자열(^-.)을 "-0."으로 대체하도록 하는 것이다.



덧글

댓글 입력 영역
* 비로그인 덧글의 IP 전체보기를 설정한 이글루입니다.



통계 위젯 (화이트)

86451
2704
2508790

2019 대표이글루_IT

B-Side