grep 명령 의 or, and, not 동작 에 대한 예

Linux 의 grep 명령 에서 OR, AND, NOT 조작 자 를 어떻게 사용 합 니까?
       사실 grep 명령 에는 OR 와 NOT 연산 자의 등가 옵션 이 있 지만 grep AND 라 는 연산 자 는 없습니다.하지만 patterns 를 사용 하여 AND 작업 을 모 의 할 수 있 습 니 다.리 눅 스 의 grep 명령 에서 OR, AND, NOT 를 어떻게 사용 하 는 지 예 를 들 어 설명 한다.
       아래 의 예 에서 이 employee. txt 파일 을 사용 합 니 다. 다음 과 같 습 니 다.
$ cat employee.txt
100  Thomas  Manager    Sales       $5,000
200  Jason   Developer  Technology  $5,500
300  Raj     Sysadmin   Technology  $7,000
400  Nisha   Manager    Marketing   $9,500
500  Randy   Manager    Sales       $6,000

(1) Grep OR 연산 자
다음 네 가지 방법 은 모두 grep OR 의 조작 을 실현 할 수 있다.개인 추천 방법 3.
1. 사용 \ |
grep 명령 의 어떤 옵션 도 사용 하지 않 으 면 '\ |' 을 사용 하여 여러 pattern 을 분할 하여 OR 작업 을 수행 할 수 있 습 니 다.
grep 'pattern1\|pattern2' filename

예 는 다음 과 같다.
$ grep 'Tech\|Sales' employee.txt
100  Thomas  Manager    Sales       $5,000
200  Jason   Developer  Technology  $5,500
300  Raj     Sysadmin   Technology  $7,000
500  Randy   Manager    Sales       $6,000

2.
사용 옵션 - E
grep - E 옵션 은 정규 표현 식 으로 확장 할 수 있 습 니 다.grep 명령 의 옵션 - E 를 사용 했다 면 | 을 사용 하여 여러 pattern 을 분할 하여 OR 작업 을 수행 해 야 합 니 다.
grep -E 'pattern1|pattern2' filename

예 는 다음 과 같다.
$ grep -E 'Tech|Sales' employee.txt
100  Thomas  Manager    Sales       $5,000
200  Jason   Developer  Technology  $5,500
300  Raj     Sysadmin   Technology  $7,000
500  Randy   Manager    Sales       $6,000

3. egrep 사용
egrep 명령 은 'grep - E' 와 같다.따라서 egrep (옵션 이 없 음) 명령 을 사용 하여 분 단 된 여러 Pattern 에 따라 OR 작업 을 수행 합 니 다.
egrep 'pattern1|pattern2' filename

예 는 다음 과 같다.
$ egrep 'Tech|Sales' employee.txt
100  Thomas  Manager    Sales       $5,000
200  Jason   Developer  Technology  $5,500
300  Raj     Sysadmin   Technology  $7,000
500  Randy   Manager    Sales       $6,000

4. 사용 옵션 - e
grep - e 옵션 을 사용 하면 하나의 인자 만 전달 할 수 있 습 니 다.단일 명령 에 여러 개의 - e 옵션 을 사용 하여 여러 개의 pattern 을 얻어 OR 작업 을 수행 합 니 다.
grep -e pattern1 -e pattern2 filename

예 는 다음 과 같다.
$ grep -e Tech -e Sales employee.txt
100  Thomas  Manager    Sales       $5,000
200  Jason   Developer  Technology  $5,500
300  Raj     Sysadmin   Technology  $7,000
500  Randy   Manager    Sales       $6,000

(2) Grep AND 조작
1. 사용 - E 'pattern 1. * pattern 2'
grep 명령 자 체 는 AND 기능 을 제공 하지 않 습 니 다.단, - E 옵션 을 사용 하면 AND 동작 을 수행 할 수 있 습 니 다.
grep -E 'pattern1.*pattern2' filename
grep -E 'pattern1.*pattern2|pattern2.*pattern1' filename

첫 번 째 예 는 다음 과 같다.
$ grep -E 'Dev.*Tech' employee.txt
200  Jason   Developer  Technology  $5,500

두 번 째 예: (두 pattern 의 순 서 는 고정된 것 이 아니 라 무질서 할 수 있다)
$ grep -E 'Manager.*Sales|Sales.*Manager' employee.txt

2. grep 명령 여러 개 사용 하기
여러 개의 grep 명령 을 사용 하여 파이프 문자 로 나 누 어 AND 의 미 를 실현 할 수 있 습 니 다.
grep -E 'pattern1' filename | grep -E 'pattern2'

예 는 다음 과 같다.
$ grep Manager employee.txt | grep Sales
100  Thomas  Manager    Sales       $5,000
500  Randy   Manager    Sales       $6,000

(3) Grep NOT 조작
1. 옵션 grep - v 사용
grep - v 를 사용 하면 NOT 작업 을 실현 할 수 있 습 니 다. -v 옵션 은 반 선 일치 (invert match) 를 실현 하 는 데 사 용 됩 니 다.예 를 들 어 지정 한 pattern 을 제외 한 모든 lines 와 일치 할 수 있 습 니 다.
grep -v 'pattern1' filename

예 는 다음 과 같다.
$ grep -v Sales employee.txt
200  Jason   Developer  Technology  $5,500
300  Raj     Sysadmin   Technology  $7,000
400  Nisha   Manager    Marketing   $9,500

물론 NOT 조작 을 다른 조작 과 결합 시 켜 더욱 강력 한 기능 조합 을 실현 할 수 있다.
예 를 들 어 이 예 는 'Manager 또는 Developer, 하지만 Sales' 의 결 과 를 얻 을 수 있 습 니 다.
$ egrep 'Manager|Developer' employee.txt | grep -v Sales
200  Jason   Developer  Technology  $5,500
400  Nisha   Manager    Marketing   $9,500

좋은 웹페이지 즐겨찾기