SCRIPT

포스트: 80
Tags

Posts

80 posts

script - 리눅스에서 터미널창 작업 내용을 파일로 저장(갈무리)하기

반달가면|2018년 4월 10일

리눅스에서 터미널창에서 작업한 내용(명령어 입력, 결과 출력 등)을 파일로 저장(갈무리)하고 싶을 경우, script를 이용하면 되겠다. 아래의 예시를 보자. # 터미널창 작업 내용을 파일 terminal_log.txt 파일에 갈무리 script terminal_log.txt Script started, file is terminal_log.txt 작업을 마치고 갈무리를 중단하려면 컨트롤(ctrl) + d 키를 누르거나, 터미널창에서 exit라고 입력하면 된다. # 갈무리 종료 exit Script done, file is terminal_log.txt 이전에 저장했던 파일에 덧붙여서 저장(append)하고 싶을 경우에는 -a 옵션을 사용한다. # 터미널창 갈무리 시작, t

[bash: nl, awk] 결과 출력에 행번호를 같이 표시하기

반달가면|2018년 2월 28일

화면에 결과를 출력할 때 행번호를 같이 표시할 필요하 있다면 nl을 이용할 수 있다. 아래의 예시를 보자. cat my_file.txt | nl 1 abc 2 def ... nl에서 아무련 옵션을 주지 않았을 경우, 6칸을 행번호 폭으로 할당하고 행번호와 출력 내용은 탭(tab)으로 구분된다. 만약 행번호의 폭을 1칸으로 하려면 -w 옵션을 사용하고, 구분자를 바꾸고 싶다면 -s 옵션을 사용하면 되겠다. # 행번호 폭 1칸, 구분자 콜론(:) cat my_file.txt | nl -w 1 -s ":" 1:abc 2:def ... 9:abc 10:def ... 출력 행수가 많아서 행번호 자리수가 -w에서 지정한 폭을 넘어갈 경우에는 당연히

[bash: sed] 문자열 대체 명령 여러개를 파일에 저장해서 활용하기

반달가면|2018년 1월 15일

sed 명령에서 여러개의 문자열을 각각 대체할 경우 -e 옵션을 활용할 수 있는데(이전 게시물을 참고하자. 여기로), 대체 명령을 파일에 저장해서 이용할 수도 있다. 우선 -e 옵션의 예시를 보자. # 문자열 abc를 123으로, def를 456으로 대체 echo "abc def xyz" | sed -e 's/abc/123/' -e 's/def/456/' 123 456 xyz 위의 작업에서 -e 옵션에 사용할 명령들을 파일에 저장해서 불러올 수 있다. 예를 들어 test.sed 파일에 이 명령들을 저장했다면 아래와 같은 형태가 된다. # test.sed 파일 내용 확인 cat test.sed s/abc/123/ s/def/456/ test.sed 파일에 있는 명령어를 적용

[bash: ((] 연관 배열(associative array)에 저장된 정수 계산

반달가면|2018년 1월 8일

간혹 실수하는 부분이 있어서 정리해 두기로. 리눅스 bash 스크립트에서의 정수 계산은 이전 게시물을 참고하자. 여기로 리눅스 bash 스크립트에서의 배열(array) 활용은 여기로, 연관 배열(associative array) 활용은 여기로. bash에서 기본적인 정수 계산은 이중 괄호를 사용한다. # 정수 계산 예시 x=3 y=5 echo $((x+y)) 8 배열(array)이라고 특별히 달라질 것은 없어 보인다. # 배열에 저장된 정수 계산 예시 a[0]=3 a[1]=5 echo $((a[0]+a[1])) 8 # 배열 인덱스에 변수 사용 a[0]=3 a[1]=5 x=0 y=1 echo $((a[x]+a[y])) 8 echo $((a[$x