Linuxpia/리눅스 사용 팁

[리눅스 팁] 매우 강력한 문자열 찾기, grep

Linuxpia4U 2024. 1. 8. 16:19
반응형

매우 강력한 문자열 찾기, 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 "찾을 단어" 파일명

caption: '비'라는 문자열이 포함된 전자책 문서 찾기

 

파이프라인을 통한 문자열 찾기

grep은 텍스트 파일뿐만 아니라, 파이프라인을 통해 다른 명령어의 출력 결과에서도 사용할 수 있어, 시스템 관리와 스크립트 작성에 있어 필수적인 도구입니다. 예를 들어, ps 명령어의 출력에서 특정 프로세스를 찾을 때 ps -ef | grep "프로세스명"과 같이 사용됩니다.

 

[사례] /usr/lib 디렉터리 개수 찾기

/usr/lib 디렉터리는 파일과 디렉터리가 많습니다. 이곳에 포함된 하위 디렉터리 개수를 파악하는데 'grep' 명령어를 사용하기로 합니다.

디렉터리는 제일 앞에 'd'가 있습니다. 반면에 일반 파일은 '-'로 시작합니다. 'ls -l' 명령에서 'd'로 시작하는 항목만 남깁니다.

 

이어서 grep 명령으로 'd'가 포함된 줄만 남깁니다. 친절하게도 빨간색으로 'd'를 찍어주는군요.

caption: 'd' 만 남김

 

이어지는 작업은 'wc'를 사용하여 라인 수를 헤아리는 것입니다. 'ls -l /usr/lib | cut -c1 | grep d | wd -l'로 확인했더니 151개의 디렉터리가 포함되어 있습니다.

 

이번에는 일반 파일의 개수를 헤아려보기로 합니다. 상대적으로 일반 파일은 36개만 있습니다.

caption: 일반 파일의 개수를 파악한 경우

 

 

반응형