[bash: grep] 다중 문자열 검색 리눅스 bash script

텍스트 파일에서 2개 이상의 문자열을 검색하는 방법이다.

(A and B) 일단 A라는 문자열과 B라는 문자열이 모두 포함된 행을 찾는 것은 간단하다. 파이프(|)를 이용해서, A가 포함된 뿐을 골라낸 후에 거기서 B를 골라내면 된다.
cat file.txt | grep A | grep B

(A or B) A 또는 B가 포함된 행을 찾으려면 A와 B를 파이프(|) 기호로 연결하면 된다. 연산자로 인식하도록 역슬래시(\)를 붙여준다.
cat file.txt | grep "A\|B"

또는 egrep 명령을 활용해도 된다. 작은따옴표(')와 괄호를 이용한다.
cat file.txt | egrep '(A|B)'

만약 shell script에서 변수에 할당된 문자열을 사용하려고 한다면 egrep으로는 어렵고 앞에 언급한 파이프 기호를 이용해야 한다.
str_a="1st string"
str_b="2nd string"
cat file.txt | grep "$str_a\|$str_b"



핑백

  • 반달가면 : [bash: grep] 정확히 일치하는 문자열 찾기 2013-09-10 00:14:14 #

    ... 찾으려면 어떻게 할 것인가? 위의 my_file.txt에서 john_smith는 제외하고 john만 찾고 싶은 경우인데, grep의 정규표현과 이전에 게시했던 다중 문자열 검색 방법을 활용해 볼 수 있다. 정규표현 중에 [[:graph:]]라는 것이 있다. 화면에 표시할 수 있는 모든 문자(영문 대소문자 + 수자 + 특수기 ... more

  • 반달가면 : [bash: top, awk] - CPU 또는 메모리 점유가 높은 프로세스 찾기 2014-10-28 22:31:53 #

    ... n 1 | awk '{ print $9 " " $12 }' | grep "^9[0-9]\|^100" grep 명령을 이용한 다중 문자열 검색은 이전 게시물을 참조하자. 여기로 메모리 점유율이 높은 프로세스를 찾는 것도 같은 방식으로 하면 되겠다. 아래의 예시를 보자. # 메모리 점유율 50% 이상인 프로세스 출력 # top 출력에서 ... more

  • 반달가면 : [bash: awk] 다중 문자열 검색 2015-10-15 00:00:20 #

    ... )을 포함하고 있다거나 하는 이유로 awk 명령을 써야할 경우도 있기 때문에 여기에 정리해 두기로. grep 명령을 이용한 다중 문자열 검색은 이전 게시물을 참고하자. 여기로 문자열 A와 문자열 B가 모두 포함된 경우(A and B), 파이프(|)를 이용한다. # my_file.txt에서 문자열 A와 B가 모두 포함된 행 출력 cat ... more

  • 반달가면 : [bash: grep] 여러개의 문자열이 특정 순서로 나오는 행 찾기 2015-11-06 20:21:15 #

    ... _file.txt | grep "abc.\{0,\}def" 순서와 무관하게 검색하는 경우는 파이프(|)로 grep 명령을 두개 연결하면 된다. 이전 게시물을 참고하자. 여기로 # 순서와 무관 cat my_file.txt | grep "abc" | grep "xyz" ... more

  • 반달가면 : [bash:if, case] 문자열 비교 조건에 정규표현식 사용 2015-12-29 22:57:47 #

    ... 자가 섞일 수도 있는 경우를 생각해 보자. 위의 정규 표현식에 다중 문자열 검색을 조합하면 된다. (grep 명령을 이용한 다중 문자열 검색은 이전 게시물을 참고하자. 여기로) # 사용자가 입력한 값을 변수 str에 저장 read str # yes/no 판단: [Yy] 또는 [Yy][Ee][Ss], [Nn] 또는 [Nn][Oo] if ... more

덧글

댓글 입력 영역
* 비로그인 덧글의 IP 전체보기를 설정한 이글루입니다.

Google Analytics


B-Side


adsense(w160_h600)2

통계 위젯 (화이트)

1321243
7126
1342464

ad_widget_2