bash script2020. 10. 22. 12:17

 

반달가면 이글루에서 백업 - bahndal.egloos.com/418681

 

텍스트 파일에서 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"

 

728x90
Posted by 반달가면