GREP

포스트: 9
Tags

Posts

9 posts

[bash: grep] grep에서 첫번째 일치하는 문자열을 찾으면 종료하기

반달가면|2022년 6월 22일

리눅스의 grep 명령은 기본적으로 일치하는 문자열을 모두 검색해서 찾아준다. # my_data.txt에 문자열 "abc"가 있는지 확인 grep "abc" my_data.txt 만약 모두 찾을 필요 없이 일치하는 문자열이 있는지 여부만 중요하다면, 일치하는 문자열을 하나만 찾으면 해당 파일을 더 이상 읽지 않고 종료할 수 있다. 최대 몇개까지 일치하는 경우를 찾을 것인지를 지정하는 -m 옵션을 사용하면 된다. 예를 들어 "-m 1"로 지정하면 일치하는 경우를 하나만 찾으면 종료한다. # my_data.txt에 문자열 "abc"가 있는지 확인하고, 첫번째로 일치하는 문자열을 찾으면 종료 grep -m 1 "abc" my_data.txt 크기가 큰 파일에서 특정 문자열이 몇 번 나오는

[bash: awk] 항목의 합계를 계산할 때 예외 처리

반달가면|2018년 11월 9일

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) 항목의 합계 계

[bash: grep] 파일에 저장된 여러개의 검색어를 포함 또는 제외한 내용 출력하기

반달가면|2018년 8월 7일

몇개의 문자열에 대한 검색은 기본적인 grep 명령으로 그 자리에서 작업을 해도 큰 문제가 없을 것이다.(grep을 이용한 다중 문자열 검색은 이전 게시물을 참고하자. 여기로) # my_data.txt에서 문자열 abc 또는 123이 포함된 행 출력 cat my_data.txt | grep "abc\|123" 그러나, 꽤 많은 검색어가 있고 이 검색어들을 제외한 나머지 내용을 찾고자 할 때는 문제가 좀 복잡해 진다. 예를 들어 keyword.txt 파일에 10개 이상의 검색어가 저장되어 있고, my_data.txt 파일에서 이 검색어를 포함 또는 제외한 내용을 출력해야 하는 경우다. 일일이 수작업으로 확인하기 검색해야할 문자열이 너무 많다. 이럴 경우엔 배열(array)을 이용해서 검색어를

리눅스에서 grep 명령의 출력을 파이프(|)로 넘길 때 글자색 유지하기

반달가면|2018년 7월 11일

grep 명령으로 문자열을 찾으면 출력된 내용에서 일치하는 부분이 빨간색으로 표시된다. echo "abcd" | grep "ab" abcd 그러나 출력값을 파이프(|)로 넘기면 색깔이 억제된다. echo "abcd" | grep "ab" | more abcd 출력 내용이 상당히 길 경우에는 출력결과를 more로 연결해서 한 페이지씩 보게 되는데, 내용이 많아서 어느 위치에 일치하는 문자열이 있는지 헷갈릴 경우가 있다. 이럴 때는 grep의 글자색 옵션을 변경해 주면 되겠다. "--color=always" 옵션을 사용. # 글자색 유지 echo "abcd" | grep --color=always "ab" | more abcd 기본 옵션은 --color=auto인데 출력을