grep 맛보기
$ grep bash /etc/passwd
- /etc/passwd 파일에서 bash 문자열을 포함하는 모든 행을 출력.
- 사용자 계정 정보 파일에서 로그인 쉘에 bash를 사용하는 사용자들을 찾는다.
$ grep -n PS1 /etc/bashrc
- /etc/bashrc 파일에서 PS1 문자열을 포함하는 모든 행을 출력하고, 각 행의 줄 번호를 함께 표시.
- -n 옵션은 매칭되는 각 행의 줄 번호(line number)를 출력한다.
$ grep system /etc/bashrc
- /etc/bashrc 파일에서 system 문자열을 포함하는 모든 행을 출력.
- 이 명령어는 대소문자를 구분하여 system 문자열을 검색.
$ grep -i system /etc/bashrc
- /etc/bashrc 파일에서 system 문자열을 포함하는 모든 행을 출력.
- -i 옵션은 대소문자를 구분하지 않고 검색. 따라서 system, System, SYSTEM 등의 형태를 모두 검색.
$ grep -v bash /etc/passwd
- /etc/passwd 파일에서 bash 문자열을 포함하지 않는 모든 행을 출력.
- -v 옵션은 패턴을 포함하지 않는 행을 출력. 즉, bash를 포함하는 행은 제외.
$ ls /etc | grep cron
- /etc 디렉토리에 포함된 파일 및 디렉토리 중 이름에 cron이 포함된 항목을 출력.
- 이 명령어는 /etc 디렉토리 내의 파일과 디렉토리 중 이름에 cron이 포함된 것을 찾아서 출력.
$ ls /etc | grep '^cron'
- /etc 디렉토리에 포함된 파일 및 디렉토리 중 이름이 cron으로 시작하는 항목을 출력.
- ^cron은 이름이 cron으로 시작하는 항목을 찾기 위한 정규 표현식. 따라서 cron으로 시작하는 파일 및 디렉토리만 출력.
[root@localhost ~]# cat example.txt
test.example.net
tfst.example.net
tzst.example.net
tzzst.example.net
www.example.com
www.example.org
netapp.example.com
mail1.example.com
mail3.example.com
mail7.example.com
첫 번째 명령어인 $ grep '.org' example.txt는 어떤 문자 다음에 .org가 오는 패턴을 찾고,
두 번째 명령어인 $ grep '\.org' example.txt는 정확히 .org 문자열을 찾습니다.
t와s 사이에 e또는 f가 오는 문자 출력. ef 두 글자는 해당 안 됨.
1. example.txt 파일에서 mail 다음에 숫자 1에서 4 중 하나가 오는 패턴
2. example.txt 파일에서 mail 다음에 1 또는 3이 아닌 다른 문자가 오는 패턴
3. example.txt 파일에서 mail 다음에 1 또는 3인 문자가 오는 패턴
1. 파일에서 시작이 net으로 되는 행을 출력
2. 파일에서 끝이 net으로 되는 행을 출력
[root@localhost ~]# cat drink.txt
Ber
Beer
BeerBeer
BeerBeerBeer
Beeeeeeeeer!!!
Bear
Br
My Vodka
My Wine
Wine Wine
WineWine
- 'Be*r': B 다음에 e가 0회 이상(즉, 없거나 여러 번), 그리고 r로 끝나는 패턴을 의미
- '^B[ea]*r$': 행의 시작이 B로 시작하고, 그 다음에 e 또는 a가 0회 이상 나오고, r로 끝나는 패턴을 의미
- 1. 'Be+r': B 다음에 e가 1회 이상, 그리고 r로 끝나는 패턴을 의미
- 2. -E 옵션은 확장된 정규 표현식(Extended Regular Expression)을 사용하여 검색
- 따라서 'Be+r'은 Be 다음에 e가 1회 이상, 그리고 r로 끝나는 패턴을 검색
- 'Be\+r': \+는 정규 표현식에서 + 문자를 그대로 의미
- grep은 기본적으로 \+를 해석하지 않기 때문에 이 명령어는 Be+r과 동일하게 동작
- Wine ?Wine': Wine 다음에 공백 문자(0개 또는 1개)이 오고, 다시 Wine이 나오는 패턴을 검색
- 'Be{1,2}r': B 다음에 e가 1회 또는 2회, 그리고 r로 끝나는 패턴을 검색합니다.
- Be 다음에 e가 4회 이상 나오고, r로 끝나는 패턴을 검색
1.
- -E: 확장 정규식을 사용하기 위한 옵션입니다.
- "Wine"이라는 단어가 연속해서 최소 두 번 이상 나타나는 줄을 찾습니다
- '(Wine){2,}': 정규식 패턴입니다.
- (Wine): "Wine"이라는 문자열과 일치합니다.
- {2,}: 이전 요소((Wine))를 두 번 이상 일치시키는 수량자입니다.
2.
- "My Vodka" 또는 "My Wine"을 포함하는 줄을 찾습니다.
- My: "My" 문자열
- (Vodka|Wine): "Vodka" 또는 "Wine" 중 하나와 일치
오류
윈도우에서 작성한 파일 [ 도스 ]로 인해 오류
dos2unix example.txt 입력하여 해결
'Linux' 카테고리의 다른 글
[Linux] grep 명령어 안 될때, grep 오류 해결 방법 (1) | 2024.05.13 |
---|---|
[Linux] sed 명령어 예시 해석 (0) | 2024.05.13 |
[Linux] 텍스트 처리 (0) | 2024.05.13 |
[Linux] 표준 입출력과 파이프라인 연습 (1) | 2024.05.13 |
[Linux] 네트워크 관련 설정과 명령어 (0) | 2024.05.10 |