매우 강력한 문자열 찾기, grep
grep
명령어는 리눅스 및 유닉스 계열 시스템에서 텍스트 검색을 위해 사용되는 강력한 도구입니다. 그 이름은 "global regular expression print"의 약어로, 파일 내용 중에서 특정 패턴이나 문자열이 일치하는 부분을 찾아내어 그 부분을 출력합니다. 이 명령어는 정규 표현식을 지원하며, 다양한 옵션을 통해 검색 기능을 확장할 수 있습니다.
grep
의 기본 사용법은 다음과 같습니다:
grep [옵션] [패턴] [파일명]
여기서 [패턴]은 찾고자 하는 문자열이나 정규 표현식이 될 수 있으며, [파일명]은 검색 대상 파일을 지정합니다.
grep
명령어의 몇 가지 일반적인 사용 예는 다음과 같습니다:
- 파일에서 단어 검색:
grep "찾을 단어" 파일명
- 여러 파일에서 단어 검색:
grep "찾을 단어" 파일1 파일2 파일3
- 대소문자 구분 없이 검색:
grep -i "찾을 단어" 파일명
- 정규 표현식 사용:
grep "^[A-Z]" 파일명
(대문자로 시작하는 모든 라인을 찾음) - 단어 전체만 일치하는 라인 검색:
grep -w "정확한 단어" 파일명
- 일치하는 라인이 아닌 것 출력:
grep -v "제외할 단어" 파일명
- 일치하는 라인의 개수 출력:
grep -c "찾을 단어" 파일명
파이프라인을 통한 문자열 찾기
grep
은 텍스트 파일뿐만 아니라, 파이프라인을 통해 다른 명령어의 출력 결과에서도 사용할 수 있어, 시스템 관리와 스크립트 작성에 있어 필수적인 도구입니다. 예를 들어, ps
명령어의 출력에서 특정 프로세스를 찾을 때 ps -ef | grep "프로세스명"
과 같이 사용됩니다.
[사례] /usr/lib 디렉터리 개수 찾기
/usr/lib 디렉터리는 파일과 디렉터리가 많습니다. 이곳에 포함된 하위 디렉터리 개수를 파악하는데 'grep' 명령어를 사용하기로 합니다.
디렉터리는 제일 앞에 'd'가 있습니다. 반면에 일반 파일은 '-'로 시작합니다. 'ls -l' 명령에서 'd'로 시작하는 항목만 남깁니다.
이어서 grep 명령으로 'd'가 포함된 줄만 남깁니다. 친절하게도 빨간색으로 'd'를 찍어주는군요.
이어지는 작업은 'wc'를 사용하여 라인 수를 헤아리는 것입니다. 'ls -l /usr/lib | cut -c1 | grep d | wd -l'로 확인했더니 151개의 디렉터리가 포함되어 있습니다.
이번에는 일반 파일의 개수를 헤아려보기로 합니다. 상대적으로 일반 파일은 36개만 있습니다.
'Linuxpia > 리눅스 사용 팁' 카테고리의 다른 글
[리눅스 팁] 작은 차이, 큰 발견: 리눅스 인터페이스 창 관리 (76) | 2024.01.14 |
---|---|
[리눅스 팁] 일치하는 문자열로 사용자 찾기 (98) | 2024.01.09 |
[리눅스 팁] 사용자 로그인, 수동과 자동 변경 (56) | 2024.01.07 |
[리눅스 팁] 명령 히스토리 사용 (54) | 2024.01.07 |
[리눅스 팁] apt 'update'와 'upgrade'의 차이 (45) | 2024.01.07 |