스크립트

포스트: 84
Tags

Posts

84 posts

[ bash: head, tail ] 처음 n개의 행, 마지막 n개의 행, 또는 이를 제외한 나머지 출력

반달가면|2021년 7월 26일

리눅스에서 head와 tail 명령을 이용해서 텍스트 파일의 처음 부분, 마지막 부분, 또는 처음 부분을 제외한 나머지, 마지막 부분을 제외한 나머지를 출력할 수 있다. 예시를 몇개 보면 금방 감이 잡힐 것이다. # my_file.txt의 처음 5개 행을 출력 (head) head -5 my_file.txt # my_file.txt의 마지막 5개 행을 출력 (tail) tail -5 my_file.txt 만약 my_file.txt에서 처음 5개의 행을 제외한 나머지 전체, 즉 6번째 행에서 마지막 행까지를 출력하려면 tail 명령에 -n 옵션을 사용하자. # my_file.txt의 처음 5개 행을 제외한 나머지 전체 출력 tail -n +5 my_file.txt 위의 예시에서

[bash: date] UTC(GMT) 기준 시간을 로컬(한국) 시간으로 변환

반달가면|2021년 6월 28일

UTC (GMT) 기준으로 되어 있는 시간을 로컬(한국) 시간으로 변환하는 방법이다. date 명령에서 -d 옵션을 사용한다. 예시를 보면 금방 감이 잡힐 것이다. # UTC 기준 2021년 6월 18일 20시 24분 10초를 한국 시간으로 date -d "TZ=\"UTC\" 2021-06-18 20:24:10" Sat 19 Jun 2021 05:24:10 AM KST # 출력 형식 지정 추가 date -d "TZ=\"UTC\" 2021-06-18 20:24:10" "+%Y.%m.%d %H:%M:%S" 2021.06.19 05:24:10 -d 옵션에서 TZ="UTC"라는 내용을 지정하여 입력하는 시간이 UTC 기준이라는 점을 명시했다. TZ값을 따옴표로 묶어야 하는데, -d 옵션을 사

[bash: bc, if]실수(부동소수점) 수자의 크기 비교

반달가면|2021년 4월 19일

리눅스 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)

반달가면|2021년 3월 12일

우선, 리눅스에서 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 옵션에 대한 내용은