SCRIPT
Posts
80 posts[bash: while, date] 특정 기간 동안의 연속된 날짜 출력하기
예를 들어 2016년 10월 1일부터 2017년 2월 5일까지의 날짜를 연속으로 출력하는 방법이다. 시작 날짜와 종료 날짜의 형태를 년(4자리)월(2자리)일(2자리) 이렇게 정하면(예: 2016년 10월 1일 -> 20161001) 조건문에서 일반 수자처럼 대소 비교를 할 수 있으므로 while 반복문과 date를 조합하여 스크립트를 만들 수 있다. 아래의 예시를 보자. # 시작 날짜 2016년 10월 1일 start_date="20161001" # 종료 날짜 2017년 2월 5일 end_date="20170205" # cur_date 변수 초기값 설정(시작 날짜) cur_date="$start_date" # 종료 날짜까지 반복 while [[ $cur_date -le $end
[bash: awk] awk에서 영역 구분을 이용한 문자열 재구성 작업 (gensub)
예전에 sed에서 역슬래시-괄호를 이용한 영역 구분 및 문자열 재구성 작업 방법을 정리해 두었는데, 같은 종류의 작업을 awk에서도 할 수 있다. 문자열의 영역을 설정해서 자리를 바꾸거나 내용을 대체하거나 하는 등의 작업이다. 우선 awk에서 제공하는 gensub 함수를 보자. 통상적인 문자열 대체는 sub, gsub 함수를 사용할 수 있지만 영역을 설정하는 것은 gensub 함수를 이용해야 한다. (sub, gsub 함수에 대한 내용은 이전 게시물을 참고하자. 여기로) gensub 함수의 형식은 아래와 같다. gensub(/문자열 또는 정규표현식/, "대체할 문자열", 실행옵션, 대상) "대상" 문자열에서 "/문자열 또는 정규표현식/"을 찾아서 "대체할 문자열"로 바꾼다. 실행 옵션은
[bash: sed] 대용량 파일에서 특정 위치의 행만 출력하기
파일에서 특정한 행을 출력하기 위해서 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
예전에 적었던 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가 포함되어



![[Spoiler] '우주 형제' 완결. 매거진 신작 '천선 전기'.](https://img.zoomtrend.com/2026/06/10/1781142015-ECBD98ED8AB8EBA1A4EB9FACEBA5BCEB93A0EC9E90.jpg)