리눅스 여러 파일에서 단어 찾는 방법

리눅스에서 특정 단어가 포함된 파일을 찾고 싶은 순간이 있습니다. 예를 들면, 로그 레벨의 설정 값을 수정하려고 하는데 로그 레벨을 변경하는 설정 파일이 어느 경로에 있는지 모를 때 "LEVEL"이라는 단어를 포함하는 파일을 검색해 볼 수 있을 것입니다.

grep으로 파일에서 단어찾기

이럴 때 리눅스에선 grep 명령어를 사용합니다. grep은 텍스트 데이터를 검색합니다. 아래와 같이 사용하시면 됩니다.

grep -r [찾는단어] [찾을 경로]

 

예시 1) "started"라는 단어 찾기

현재 디렉토리와 그 하위 디렉토리에서 "started"라는 단어를 찾고 싶다면 아래와 같이 쓸 수 있습니다.

[root@localhost log]# grep -r "started" .

 

grep -r started 결과

 

grep 명령어를 쓸 때 [찾을 경로]는 찾을 경로로 이동해서 현재 디렉토리(.)를 기준으로 검색 하는 게 가장 직관적인 거 같습니다. 루트 경로 전체 (/)를 쓸 수도 있지만, 이렇게 리소스 소모가 과도할 수 있습니다.

 

예시 2) 대소문자 구분없이 "started" 찾기

grep은 대소문자를 구별합니다. 만약 대소문자를 구별하지 않고 찾고 싶다면 -i 옵션을 사용할 수 있습니다.

[root@localhost log]# grep -ri "started" .

 

grep -ri "started" 결과

 

예시 3) "started" 또는 "stop" 단어 모두 찾기

grep 명령어는 정규 표현식을 사용하여 패턴 검색을 할 수 있습니다. 예를 들어, "started" 또는 "stop" 단어가 포함된 라인을 한번에 찾아보고 싶다면 -E 옵션을 함께 사용합니다.

[root@localhost log]# grep -Er "started|stop" .

 

grep -Er "started|stop" 결과
started와 stop이 포함된 라인을 모두 찾아줬다.

 

 

예시 4) "May"로 시작하는 라인 찾기

"May"로 시작하는 라인을 찾고 싶다면 다음과 같이 쓸 수 있습니다. 이는 May라는 단어를 포함한 라인을 검색하는 것과 결과와 달리 첫 줄의 시작이 May인 라인을 찾습니다.

[root@localhost log]# grep -Er "^May" .

 

grep -Er "^May" 결과

반응형

댓글

Designed by JB FACTORY