( 1 ) 설명
파일에서 특정한 패턴(문자열)을 찾는 명령어임.
이는 해당 문자열이 들어있는 파일을 찾아 그 문자열이 들어가 있는 라인(행)을 화면에 출력함.
( 2 ) 옵션 설명
kali@kali:~$ grep --help
Usage: grep [OPTION]... PATTERNS [FILE]...
각 파일에서 패턴을 검색하십시오.
Example: grep -i 'hello world' menu.h main.c
패턴은 개행으로 구분된 여러 패턴을 포함할 수 있음.
패턴 선택 및 해석:
(패턴 지정 시 정규 표현식은 작은 따음표로 묶어서 표현함)
-E, --extended-regexp 패턴이 확장 정규 표현식임
-F, --fixed-strings 패턴이 문자열임
-G, --basic-regexp 패턴이 기본 정규 표현식임
-P, --perl-regexp 패턴이 Perl 정규 표현식임
-e, --regexp=PATTERNS 매칭되는 패턴을 사용함
-f, --file=FILE 파일에서 패턴을 가져옴
-i, --ignore-case 대소문자 구분을 무시함
-w, --word-regexp 전체 단어만 일치시킴
-x, --line-regexp 전체 라인만 일치시킴
-z, --null-data 데이터 라인은 개행 문자가 아닌 0 바이트로 끝냄
Miscellaneous:
-s, --no-messages 에러 메시지를 표시하지 않음
-v, --invert-match 일치하지 않는 라인을 선택함
-V, --version 버전 정보를 표시하고 종료함
--help 도움말 정보를 표시하고 종료함
출력 제어:
-m, --max-count=NUM 선택한 NUM 개의 줄 이후에 중지함
-b, --byte-offset 출력 라인과 함께 바이트 오프셋을 출력함
-n, --line-number 출력 라인과 함께 라인 번호를 출력함
--line-buffered 모든 라인을 출력함
-H, --with-filename 출력 라인함 함께 파일 이름을 출력함
-h, --no-filename 출력 시 파일 이름을 출력하지 않음
--label=LABEL 표준 입력 시 파일 이름을 앞에 라벨로 사용함
-o, --only-matching 라인과 일치하는 부분만 출력함
-q, --quiet, --silent 모든 정살 출력을 중지함
--binary-files=TYPE 바이너리 파일 유형을 지정함
(TYPE 옵션은 binary, text, without-match 임)
-a, --text --binary-files=text 옵션과 같음
-I --binary-files=without-match 옵션과 같음
-d, --directories=ACTION 디렉토리를 처리하는 방법을 지정함
(ACTION 옵션은 read, recurse, skip 임)
-D, --devices=ACTION 장치, FIFO, 소켓을 처리하는 방법을 지정함
(ACTION 옵션은 read, skip 임)
-r, --recursive --directories=recurse 옵션과 같음
-R, --dereference-recursive 모든 심볼릭 링크를 찾음
--include=GLOB 파일 패턴(GLOB)과 일치하는 파일만 검색함
--exclude=GLOB 파일 패턴(GLOB)과 일치하는 파일과 디렉토리를 건너뜀
--exclude-from=FILE 파일(FILE)에서 파일 패턴과 일치하는 파일을 건너뜀
--exclude-dir=GLOB 파일 패턴과 일치하는 디렉토리는 건터뜀
-L, --files-without-match 선택된 라인이 없는 파일 이름만 출력함
-l, --files-with-matches 선택된 라이이 있는 파일 이름만 출력함
-c, --count 파일 단 선택된 라인 수만 출력됨
-T, --initial-tab 탭을 정렬함 (필요한 경우)
-Z, --null 파일 이름 뒤에 0 바이트를 출력함
문맥 제어:
-B, --before-context=NUM 선행 문맥의 NUM 라인을 출력함
-A, --after-context=NUM 후행 문맥의 NUM 라인을 출력함
-C, --context=NUM 출력 문맥의 NUM 라인을 출력함
-NUM --context=NUM 과 동일함
--color[=WHEN],
--colour[=WHEN] 일치하는 문자열을 강조하기 위해 마커를 사용함
-U, --binary 줄의 끝문자(EOL)에서 CR 문자를 제거하지 않음 (MSDOS/Windows)
파일이 '-' 인 경우 표준 입력을 읽으십시오.
파일이 없으면 '.' 을 읽으십시오.
재귀적이거나 그렇지 않으면 '-' 을 읽으십시오.
파일이 2개 미만인 경우 -h 를 가정하십시오.
행(또는 -L 인 경우 파일)을 선택한 경우 종료 상태는 0 이고 그렇지 않은 경우 1 임.
오류가 발생하고 -q 가 제공되지 않으면 종료 상태는 2 임.
Report bugs to: bug-grep@gnu.org
GNU grep home page: <http://www.gnu.org/software/grep/>
General help using GNU software: <https://www.gnu.org/gethelp/>
kali@kali:~$
grep 3.3 버전에서 확인함.
( 3 ) grep 명령어에서 사용하는 정규 표현식 메타문자
^ 행의 시작 지시자
$ 행의 끝 지시자
. 하나의 문자와 대응
* 선행문자와 같은 문자의 0개 혹은 임의개수와 대응
[] [] 사이의 문자 집합중 하나와 대응
[^ ] 문자집합에 속하지 않는 한 문자와 대응
\< 단어의 시작 지시자
\> 단어의 끝 지시자
\(..\) 다음 사용을 위해 태그를 붙임
x\{m\} 문자 x를 m번 반복함
x\{m,\} 적어도 m번 반복함
x\{m,n\} m회 이상 n회 이하 반복함
( 4 ) 사용예
koromoon_dic 이라는 파일내에서 koromoon 이라는 패턴이 들어간 문자열과 행번호를 출력함
grep -n koromoon koromoon_dic
현재 디렉토리의 모든 파일에서 koromoon 이라는 패턴이 들어간 파일의 이름을 출력함
grep -l koromoon *
현재 디렉토리의 모든 파일에서 koromoon 이라는 패턴이 들어가지 않은 행을 출력함
grep -v koromoon *
현재 디렉토리 및 서브디렉토리의 모든 파일에서 koromoon 이라는 패턴이 들어간 문자열 출력함
grep -r koromoon *
^는 파일의 시작을 나타내며 파일에서 k 로 시작하는 행을 찾음
grep '^k' 파일명
$는 파일의 끝을 나타내며 파일에서 koromoon 으로 끝나는 행을 찾음
grep 'koromoon$' 파일명
파일에서 koromoon 으로 시작하는 모든 단어를 찾음
grep 'koromoon*' 파일명
파일에서 k 로 시작하고 n 으로 끝나는 8 자리 단어를 찾음
grep 'k......n' 파일명
파일에서 a,b,c,d 로 시작하는 단어를 모두 찾음
grep [a-d] 파일명
파일에서 koromoon 또는 Koromoon 으로 시작하는 단어를 모두 찾음
grep [kK]oromoon 파일명
d 로 시작하는 모든 파일에서 koromoon 을 포함하는 모든 행을 찾음
grep 'koromoon' d*
지정된 두개의 파일에서 koromoon 을 포함하는 모든 행을 찾음
grep 'koromoon' 파일명1 파일명2
파일에서 a나 b로 시작되는 모든 행을 찾음
grep '^[ab]' 파일명
============================================================
본 게시물은 KOROMOON 님께서 작성하였으며 CCL (Creative Commons License) 에서 "저작자표시-비영리-동일조건변경허락" 이용조건으로 자료를 이용하셔야 합니다.
댓글 없음:
댓글 쓰기