(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"
덧글