BASH
Posts
81 posts[bash: awk] 다수의 문자열을 검색하여 일치하는 부분만 출력하기(match, substr)
우선, awk에서 match 함수와 substr 함수를 활용해서 특정 문자열 패턴을 검색하고 일치하는 부분만 출력하는 방법은 이전 게시물을 참고하자. 여기로. 일단 기본적인 예시는 아래와 같다. 행 전체($0)에서 문자열 "abc"가 있으면 일치하는 부분만 출력한다. echo "abcdefg" | awk 'match($0,/abc/) { print substr($0,RSTART,RLENGTH) }' abc 여기서는 입력에 대해 검색하고자 하는 문자열 패턴이 여러개일 경우를 생각해 보려고 한다. 예를 들어 탭(tab)을 항목 구분자(field separator)로 사용하는 입력에서 두번째 항목($2)에 문자열 "abc"가 있는지 확인하고 세번째 항목($3)에 3개의 연속된 수자(정규표현식
[bash: sed] 특정 행부터 파일 마지막까지 출력하기
우선, sed 명령으로 파일의 특정 범위를 출력하는 기본적인 방법은 이전 게시물을 참고하자. 여기로 # my_file.txt 파일의 12번째 행만 출력 sed -n 12p my_file.txt # my_file.txt 파일의 3번째 행부터 12번째 행까지 출력 sed -n 3,12p my_file.txt 예를 들어, my_file.txt 파일이 총 몇개의 행으로 이루어져 있는지 확인하지 않고 어쨌든 3번째 행부터 마지막까지 출력하려면 아래와 같이 할 수 있다. # my_file.txt 파일의 3번째 행부터 마지막 행까지 출력 sed -n "3,\$p" my_file.txt 마지막 행을 지칭하는 기호가 "$"인데, 셸(shell)에서 변수를 지칭하는 것으로 해석되지 않도록 역
[bash: awk] 문자열을 검색해서 일치하는 부분만 출력하기(match, substr)
awk에서 특정 문자열 패턴과 일치하는 부분이 있을 경우, 일치하는 부분만 출력하는 방법이다. grep에서 -o 옵션으로 일치하는 부분만 골라서 출력하는 것과 동일한 기능이나(grep의 -o 옵션에 대한 내용은 이전 게시물을 참고하자. 여기로), awk에서는 좀 더 복잡한 작업들과 조합해서 사용할 수 있으므로 알아두면 편리하다. 아래의 예시를 보자. 입력된 행에 문자열 "abc"가 있는지 확인하여 있을 경우 해당 부분만 출력하는 경우다. echo "abcdefg" | awk 'match($0,/abc/) { print substr($0,RSTART,RLENGTH) }' abc match 함수를 이용하여 일치하는 부분이 있는지 확인한 후에 문자열 일부를 출력하기 위해 substr 함수를 사용
[bash: awk] 항목의 합계를 계산할 때 예외 처리
awk를 이용해서 합계를 구할 때, 입력이 유효하지 않은 경우가 발생할 수 있다. 예를 들어 특정 파일에서 grep으로 특정 항목만 추출한 후에 해당 항목의 합계를 구하려는데, 그 항목 자체가 파일에서 존재하지 않는 경우다. awk를 이용한 항목별 합계 계산 방법은 이전 게시물을 참고하자. 여기로 예를 하나 생각해 보자. my_data.txt의 파일이 아래와 같다. # my_data.txt 파일 내용 확인 (구분자는 탭) cat my_data.txt 2018.1.3 apple 10 2018.1.3 orange 3 2018.3.10 apple 2 위의 파일에 대해서 사과(apple)가 몇개 팔렸는지만 궁금하다면 아래와 같은 작업을 할 수 있다. # 사과(apple) 항목의 합계 계
![[1년 전 오늘] 250608 인천 무의도 덕점방파제 바다루어낚시 - 장대, 광어](https://img.zoomtrend.com/2026/06/10/1781084366-20250608122254.jpg)
![[CV] [Comi] '終末のハーレム ファンタジア' (종말의 하렘 판타지아) 17권. 그동안 SAVAN에 무슨 일이 있었던 거냐](https://img.zoomtrend.com/2026/06/10/1781084386-ECA484EBA6ACEC9790.jpg)

