BASH

포스트: 81
Tags

Posts

81 posts

[Linux Tip] Bash shell script 에서 외따옴표와 쌍따옴표의 비밀

자, 여러분 퀴즈입니다.아래 스크립트의 실행 결과를 예측해주세요 ------------------------------------------DIR_PATH="/home/deploy/scripts" # 쌍따옴표FILE_PATH_1="${DIR_PATH}/my.sh" # 외따옴표 사용FILE_PATH_2='${DIR_PATH}/my.sh' # 1번 프린트문echo ${FILE_PATH_1} # 2번 프린트문echo ${FILE_PATH_2}------------------------------------------ 자, 예측이 끝났으면...리눅스 OS를 지금 바로 사용가능하신 분들은 저 코드를 복사해서 실행해 봅시다.chmod 755 로.. 실행권한 주는건.. 굳이 말 안해도 되겟죠..? 여튼...

[bash: awk] awk에서 영역 구분을 이용한 문자열 재구성 작업 (gensub)

반달가면|2017년 1월 17일

예전에 sed에서 역슬래시-괄호를 이용한 영역 구분 및 문자열 재구성 작업 방법을 정리해 두었는데, 같은 종류의 작업을 awk에서도 할 수 있다. 문자열의 영역을 설정해서 자리를 바꾸거나 내용을 대체하거나 하는 등의 작업이다. 우선 awk에서 제공하는 gensub 함수를 보자. 통상적인 문자열 대체는 sub, gsub 함수를 사용할 수 있지만 영역을 설정하는 것은 gensub 함수를 이용해야 한다. (sub, gsub 함수에 대한 내용은 이전 게시물을 참고하자. 여기로) gensub 함수의 형식은 아래와 같다. gensub(/문자열 또는 정규표현식/, "대체할 문자열", 실행옵션, 대상) "대상" 문자열에서 "/문자열 또는 정규표현식/"을 찾아서 "대체할 문자열"로 바꾼다. 실행 옵션은

[bash: sed] 대용량 파일에서 특정 위치의 행만 출력하기

반달가면|2017년 1월 13일

파일에서 특정한 행을 출력하기 위해서 sed 명령을 활용하게 되는데, 통상 아래의 예시와 같은 형태로 쓰게 된다. # my_data.txt 파일에서 124번째 행을 출력 sed -n 124p my_data.txt # my_data.txt 파일에서 100번째 행부터 110번째 행까지 출력 sed -n 100,110p my_data.txt 파일 용량이 별로 크지 않으면 위와 같은 형태로도 별 문제가 없다. 그러나 수백MB 이상의 대용량 파일에서 특정 부분을 출력해야 하는 경우에, 특히 이런 작업을 여러번 반복해야 하는 경우에는 상당한 시간이 걸릴 수 있다. 예를 들어 500MB 파일에서 100번째 행만 출력하는 상황이라도, sed는 파일을 처음부터 끝까지 다 읽은 후에 작업을 종료하기

[bash: awk] 다중 문자열 검색 - 2

반달가면|2017년 1월 5일

예전에 적었던 awk를 이용한 다중 문자열 검색에 대한 보충. 문자열 A와 문자열 B가 모두 포함된 경우(A and B)와 둘 중 하나가 포함된 경우(A or B)에 대하여 아래와 같이 입력하여 검색할 수 있다. 교집합(and)은 "&&", 합집합(or)은 "||" 기호를 사용하면 된다. # my_data.txt에서 A와 B가 모두 포함된 행 출력(A and B) awk '/A/ && /B/' my_data.txt # my_data.txt에서 A 또는 B가 포함된 행 출력(A or B) awk '/A/ || /B/' my_data.txt 위와 같은 형식을 이용해서 좀 더 복잡한 검색을 해 볼 수 있다. 예를 들어 첫번째 항목(field)에 A가 포함되어