grep 을 이용 특정 문자를 포함하는 파일을 찾기

grep 명령어는 파일에서 문자열을 찾는 명령어로 잘 사용하면 강력한 검색력을 발휘 할 수도 있습니다.
grep 을 사용하여 파일에서 문자열을 검색하는 방법에 대한 몇 가지 일반적인 예제입니다.

grep “text string to search” directory-path
grep [option] “text string to search” directory-path
grep -r “text string to search” /directory-path
grep -r -H “text string to search” directory-path
egrep -R “word-1|word-2” /path/to/directory

# Find string in files on Linux #
egrep -w -R “word-1|word-2” directory-path

주어진 텍스트 문자열에 대한 모든 파일을 검색하고 찾는 방법

이 예제에서 /home/디렉토리에 있는 모든 텍스트(*.txt) 파일에서 ‘readme’라는 문자열을 검색하고 다음을 사용합니다.
$ grep “readme” /home/ *.txt
Linux의 파일에서 “readme”라는 텍스트를 찾습니다.
$ grep “readme” ~/*.txt

작업: 모든 하위 디렉터리를 재귀적으로 검색하여 파일에서 텍스트 찾기

grep -r 옵션 을 사용하여 재귀적으로 각 디렉토리 아래의 모든 파일을 텍스트 문자열로 검색할 수 있습니다 .
$ grep -r “readme” /home/
또는
$ grep -R “readme” /home/


Linux에서 cache 텍스트가 포함된 모든 파일을 찾습니다.
$ grep -R HTTPRequest /home/

전체 Linux 서버에서 문자열을 검색하고 싶습니다. 즉, “agent”라는 단어를 검색하려면 다음 명령을 사용하십시오
$ sudo grep -R “agent” /
. /루트 파일 시스템을 나타냅니다. 위의 명령은 시간이 많이 걸릴 수 있습니다. 따라서 필요에 따라 특정 디렉토리로 검색을 제한하는 것이 좋습니다.
$ sudo grep -R “agent” /etc/

작업: 파일 이름만 표시

grep 명령은 기본적으로 일치하는 행을 인쇄합니다. -H각 일치 항목에 대한 파일 이름을 인쇄하는 옵션을 전달할 수 있습니다 .
$ grep -H -r “readme” /home
샘플 출력:

filename.txt: readme

foobar.txt: readme

파일 이름만 표시하려면 다음과 같이 cut 명령을 사용하십시오.
$ grep -H -R vivek /etc/* | cut -d: -f1
샘플 출력:

파일명.txt

foobar.txt

작업: 파일 이름 제외하기

grep 명령은 출력을 별도의 줄에 표시하며 여러 파일의 경우 찾은 파일 이름이 앞에 옵니다. -h출력에 파일 이름이 포함되지 않도록 하는 옵션을 전달할 수 있습니다 .
$ grep -h -R ‘main()’ ~/projects/*.c

작업: 단어만 표시

옵션 을 사용하여 전체 단어를 구성하는 일치 항목이 포함된 행만 선택할 수 있습니다 -w. 이 예에서는 ~/projects/ 디렉토리에서만 ‘getMyData()’라는 단어를 검색합니다.
$ grep -w -R ‘getMyData()’ ~/projects/

작업: 두 개 이상의 단어 검색

다음과 같이 egrep 명령을 사용합니다.
$ egrep -w -R ‘word1|word2’ ~/projects/

작업: 경고 스팸 숨기기

grep 명령은 권한 및 기타 문제로 인해 다음과 같은 오류 메시지를 생성합니다.

해당 파일 또는 디렉터리 가
없습니다 해당 장치 또는 주소 가 없습니다
권한이 거부되었습니다

grep 명령에 의해 생성된 모든 오류 또는 경고 메시지 스팸을 숨기려면 2>/dev/null을 grep 명령 에 추가하십시오 . 이것은 원치 않는 출력을 /dev/null 장치로 보내고 숨깁니다:
$ grep -w -R ‘getMyData()’ ~/projects/ 2>/dev/null

작업: 일치하는 텍스트를 색상으로 표시

–color 터미널에서 일치하는 텍스트/단어를 색상으로 표시하는 grep 명령에 옵션을 전달합니다 .

grep  –color  ‘단어’  파일
grep  –color   ‘단어’  /경로/ to /dir
grep  –color  -R  “192.168.”  /etc/
grep  –color  -R  -h  “192.168.”  /etc/
grep  –color  -R  -h  “192.168.”  /etc/ 2>/ dev/null

작업: 대소문자 무시

마지막 예는 검색 PATTERN과 입력 파일 모두에서 대소문자 구분을 무시합니다.
$ grep -i -R ‘word’ /path/to/dir
$ grep -i -r ‘income tax’ ~/accounting/

Linux에서 특정 텍스트가 포함된 모든 파일을 찾기

구문은 다음과 같습니다.
$ egrep ‘pattern’ -rnw /path/to/dir/
$ egrep ‘word1|word2’ -rnw /home/vivek/backups/

grep내용 정리하기

Linux에서 grep 명령을 사용하여 특정 텍스트 문자열(단어)이 포함된 파일을 검색하고 찾는 방법
grep을 사용하여 파일 내에서 텍스트 문자열 찾기

이 예제는 소문자 또는 대문자로 시작하는 줄을 검색합니다.
$ grep “^[a-zA-Z]” -rns ~/projects/texts/
여기서,

  • -r– 재귀 검색
  • -R– 각 디렉토리 아래의 모든 파일을 재귀적으로 읽습니다. -rgrep 옵션 과 달리 모든 심볼릭 링크를 따르십시오.
  • -n– 일치하는 각 줄의 줄 번호 표시
  • -s– 존재하지 않거나 읽을 수 없는 파일에 대한 오류 메시지 억제
  • -w– 단어에 대해서만 작동합니다. 즉, 전체 단어를 구성하는 일치 항목이 포함된 행만 검색합니다.
  • -l– 일치하는 항목이 발견되면 각 입력 파일의 이름을 표시합니다.
  • -i– 검색 시 대소문자 무시

추가적인 옵션들은 man 명령 또는 grep 명령 을 사용하여 참고하십시오.
$ man grep
$ grep –help

Leave a Reply

Your email address will not be published. Required fields are marked *