SCRIPT
Posts
80 posts[bash: bc, if]실수(부동소수점) 수자의 크기 비교
리눅스 bash 스크립트의 if 조건문에서 정수(integer)의 크기 비교는 기본적으로 제공된다. x=2 y=-1 if (( $x > $y )) then echo "x의 값이 y의 값보다 큽니다." fi if [[ $x -gt $y ]] then echo "x의 값이 y의 값보다 큽니다." fi 만약 비교하고자 하는 수자가 실수(부동소수점)인 경우에는 위의 예시와 같은 비교를 할 수 없다. 이럴때는 bc와 조합을 하면 되겠다. 우선 bc와 관련한 아래의 예시를 보자. x=2.34 y=0.45 # x의 값이 y의 값보다 크면 1을 출력, 그렇지 않으면 0을 출력 echo "$x > $y" | bc # x의 값이 y의 값과 같으면 1을 출
[bash: bc, sed] 1보다 작거나 -1보다 큰 계산 결과에서 앞자리에 0 표시하기 (.5 -> 0.5)
우선, 리눅스에서 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 옵션에 대한 내용은
[bash: bc, sed] 1보다 작거나 -1보다 큰 계산 결과에서 앞자리에 0 표시하기 (.5 -> 0.5)
우선, 리눅스에서 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 옵션에 대한 내용
[bash: tail] 텍스트 파일 내용의 끝부분 출력
큰 텍스트 파일 내용의 마지막 부분을 보고 싶을 때 tail 명령을 사용할 수 있다. 예를 들어 my_file.txt 파일의 마지막 5개 행을 출력하려면 아래와 같이 입력하면 되겠다. -n 옵션에 마지막 몇개의 행을 출력할 것인지 지정할 수 있다. # my_file.txt 파일의 마지막 5개 행을 출력 tail -n 5 my_file.txt 또 한가지 방법은 특정 행번호부터 마지막까지 출력하는 방식이다. -n 옵션에서 수자 앞에 "+" 기호를 추가한다. 예를 들어 my_file.txt 파일의 10번째 행부터 마지막까지 출력하려면 아래와 같이 입력한다. # my_file.txt 파일의 10번째 행부터 마지막까지 출력 tail -n +10 my_file.txt cat 명령과 조합해도 결



