English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Linux grep 명령어는 파일 내에 일치하는 문자열을 찾습니다.
grep 명령어는 지정된 템플릿 스타일을 포함한 내용을 가진 파일을 찾습니다. 파일 이름을 지정하지 않거나 주어진 파일 이름이 -그렇다면 grep 명령어는 표준 입력 장치에서 데이터를 읽습니다.
grep [-abcEFGhHilLnqrsvVwxy][-A<표시 행 수>][-B<표시 열 수>][-C<표시 열 수>][-d<작업 수행>][-e<템플릿 스타일>][-f<템플릿 파일>][--help][템플릿 스타일][파일 또는 디렉토리...]
파라미터:
-a 또는 --text 이진 데이터를 무시하지 마십시오.
-A<표시 행 수> 또는 --after-context=<표시 행 수> 템플릿 스타일에 맞는 열을 표시하는 것 외에도, 해당 행의 후 내용을 표시합니다.
-b 또는 --byte-offset 스타일에 맞는 행을 표시하기 전에, 해당 행의 첫 번째 문자의 번호를 표시합니다.
-B<표시 행 수> 또는 --before-context=<표시 행 수> 스타일에 맞는 행을 표시하는 것 외에도, 해당 행의 전 내용을 표시합니다.
-c 또는 --계산 스타일에 맞는 행의 열 수를 계산합니다.
-C<표시 행 수> 또는 --context=<표시 행 수> 또는-<표시 행 수> 스타일에 맞는 행을 표시하는 것 외에도, 해당 행의 전후 내용을 표시합니다.
-d <작업> 또는 --directories=<작업> 검색할 것이 디렉토리인 경우 이 옵션을 사용해야 합니다. 그렇지 않으면 grep 명령어는 메시지를 반환하고 작업을 중단합니다.
-e<템플릿 스타일> 또는 --regexp=<템플릿 스타일> 문자열을 파일 내용의 스타일로 사용하려면 이 옵션을 사용해야 합니다. 그렇지 않으면 grep 명령어는 메시지를 반환하고 작업을 중단합니다.
-E 또는 --확장-regexp 스타일을 확장된 정규 표현식으로 사용하십시오.
-f<규칙 파일> 또는 --file=<규칙 파일> 규칙 파일을 지정하며, 그 내용에는 하나 이상의 규칙 스타일이 포함되어 grep이 규칙 조건을 만족하는 파일 내용을 찾습니다. 각 행에 하나의 규칙 스타일이 포함됩니다.
-F 또는 --고정-regexp 스타일을 고정된 문자열 목록으로 사용하십시오.
-G 또는 --기본-regexp 스타일을 일반 표현법으로 사용하십시오.
-또는 --no-filename 콘텐츠 스타일에 맞는 행을 표시하기 전에, 해당 행이 속한 파일 이름을 표시하지 않습니다.
-H 또는 --with-filename : 일치하는 스타일의 행을 표시하기 전에, 그 행이 속한 파일 이름을 표시합니다.
-i 또는 --ignore-case : 문자열의 대소문자를 무시합니다.
-l 또는 --file-with-matches : 지정된 스타일을 포함하는 파일 이름을 나열합니다.
-L 또는 --files-without-match : 지정된 스타일을 포함하지 않는 파일 이름을 나열합니다.
-n 또는 --line-number : 일치하는 스타일의 행을 표시하기 전에, 그 행의 열 번호를 표시합니다.
-o 또는 --only-matching : PATTERN 부분만 표시합니다.
-q 또는 --quiet 또는--silent : 어떤 정보도 표시하지 않습니다.
-r 또는 --recursive : 이 매개변수의 효과는 지정된"-"recurse" 매개변수와 동일합니다.
-s 또는 --no-messages : 오류 메시지를 표시하지 않습니다.
-v 또는 --invert-match : 일치하는 텍스트를 포함하지 않는 모든 행을 표시합니다.
-V 또는 --version : 버전 정보를 표시합니다.
-w 또는 --word-regexp : 모든 단어가 일치하는 열을 표시합니다.
-x --line-regexp : 모든 열이 일치하는 열을 표시합니다.
-y : 이 매개변수의 효과는 지정된"-i" 매개변수와 동일합니다.
1、현재 디렉토리에서 파일 이름의 끝이 file인 파일 중 test 문자열을 포함하는 파일을 찾아, 그 문자열의 행을 출력합니다. 이 경우 다음과 같은 명령어를 사용할 수 있습니다:
grep test *file
결과는 다음과 같습니다:
$ grep test test* # 'test' 접두사가 있는 파일을 포함하는 'test' 문자열을 찾습니다 testfile1:이것은 Linux testfile입니다! # testfile을 나열합니다1 test 문자를 포함하는 파일의 행 testfile_2:이것은 linux testfile입니다! # testfile_를 나열합니다2 test 문자를 포함하는 파일의 행 testfile_2:Linux test # testfile_를 나열합니다2 test 문자를 포함하는 파일의 행
2、재귀적으로 조건을 만족하는 파일을 찾습니다. 예를 들어, 지정된 디렉토리/etc/acpi 및 그 서브디렉토리(서브디렉토리가 있으면)에 있는 모든 파일에서 'update' 문자열을 포함하는 파일을 찾아, 그 문자열이 있는 행을 출력합니다. 사용하는 명령어는 다음과 같습니다:
grep -r update /etc/acpi
출력 결과는 다음과 같습니다:
$ grep -r update /etc/acpi # 'etc'를 재귀적으로 찾습니다/acpi # 'update'를 포함하는 파일이 포함되어 있습니다 /etc/acpi/ac.d/85-anacron.sh:# (가장 많은 IO를 유발하는 것과 같은 slocate updatedb) 대신 /etc/acpi/resume.d/85-anacron.sh:# (slocate updatedb와 같은 것들이 많은 IO.) 대신 /etc/acpi/events/thinkpad-cmos:action=/usr/sbin/thinkpad-keys--update
3반대로 찾기. 이전 예제는 조건에 맞는 행을 찾고 출력하는 것입니다.-v"파라미터는 조건에 맞지 않는 행의 내용을 출력할 수 있습니다.
test를 포함하는 파일 이름의 파일에서 test를 포함하지 않는 행을 찾을 때, 사용하는 명령어는 다음과 같습니다:
grep -v test *test*
결과는 다음과 같습니다:
$ grep-v test* #test를 포함하는 파일 이름의 파일에서 test를 포함하지 않는 행을 찾기 testfile1:helLinux! testfile1:Lin은 무료 Unix입니다-운영 체제 선택. testfile1:Lin testfile_1:HELLO LINUX! testfile_1:Linux는 무료 Unix입니다-운영 체제 선택. testfile_1:THIS IS A LINUX TESTFILE! testfile_2:HELLO LINUX! testfile_2:Linux는 무료 Unix입니다-운영 체제 선택.