320x100
GREP(Global Regular Expression Print)는 텍스트 파일에 원하는 문자열을 찾아낼때 사용하는 명령어로 주로 log파일을 뒤질때 사용한다.
grep에 대한 옵션을 살펴보고 예제로 특정 단어가 포함되는 파일찾기, 특정 확장자 파일에서 특정 단어가 포함된 구역 출력하기를 예제로 실행해본다.
GREP 사용방법은 grep [OPTION] [PATTERN] [FILE] 식으로 사용하면 된다.
grep --help를 사용하면 자세한 설명을 볼 수 있다.
Pattern selection and interpretation:
-E, --extended-regexp PATTERNS are extended regular expressions
-F, --fixed-strings PATTERNS are strings
-G, --basic-regexp PATTERNS are basic regular expressions
-P, --perl-regexp PATTERNS are Perl regular expressions
-e, --regexp=PATTERNS use PATTERNS for matching
-f, --file=FILE take PATTERNS from FILE
-i, --ignore-case ignore case distinctions
-w, --word-regexp match only whole words
-x, --line-regexp match only whole lines
-z, --null-data a data line ends in 0 byte, not newline
Miscellaneous:
-s, --no-messages suppress error messages
-v, --invert-match select non-matching lines
-V, --version display version information and exit
--help display this help text and exit
Output control:
-m, --max-count=NUM stop after NUM selected lines
-b, --byte-offset print the byte offset with output lines
-n, --line-number print line number with output lines
--line-buffered flush output on every line
-H, --with-filename print file name with output lines
-h, --no-filename suppress the file name prefix on output
--label=LABEL use LABEL as the standard input file name prefix
-o, --only-matching show only nonempty parts of lines that match
-q, --quiet, --silent suppress all normal output
--binary-files=TYPE assume that binary files are TYPE;
TYPE is 'binary', 'text', or 'without-match'
-a, --text equivalent to --binary-files=text
-I equivalent to --binary-files=without-match
-d, --directories=ACTION how to handle directories;
ACTION is 'read', 'recurse', or 'skip'
-D, --devices=ACTION how to handle devices, FIFOs and sockets;
ACTION is 'read' or 'skip'
-r, --recursive like --directories=recurse
-R, --dereference-recursive likewise, but follow all symlinks
--include=GLOB search only files that match GLOB (a file pattern)
--exclude=GLOB skip files and directories matching GLOB
--exclude-from=FILE skip files matching any file pattern from FILE
--exclude-dir=GLOB skip directories that match GLOB
-L, --files-without-match print only names of FILEs with no selected lines
-l, --files-with-matches print only names of FILEs with selected lines
-c, --count print only a count of selected lines per FILE
-T, --initial-tab make tabs line up (if needed)
-Z, --null print 0 byte after FILE name
Context control:
-B, --before-context=NUM print NUM lines of leading context
-A, --after-context=NUM print NUM lines of trailing context
-C, --context=NUM print NUM lines of output context
-NUM same as --context=NUM
--color[=WHEN],
--colour[=WHEN] use markers to highlight the matching strings;
WHEN is 'always', 'never', or 'auto'
-U, --binary do not strip CR characters at EOL (MSDOS/Windows)
그러면 특정 폴더에서 특정단어가 있는 파일을 찾아보자
/home/pi 폴더에서 GPIO명령어를 사용하는 파일들을 찾고싶다 가정한다.
sudo grep -Ril "GPIO" /home/pi
- R : 하위 모든 디렉터리
- i : 대소문자 무시
- l(L) : 문자열이 아닌 파일이름을 출력
/home/pi 폴더에서 확장명이 .c/.h 파일 중 GPIO명령어를 사용하는 부분을 찾고싶다 가정한다. (참고로 --include는 포함하는, --exclude는 포함하지 않는... 이라는 옵션)
grep --include=\*.{c,h} -Rnw "gpio" /home/pi
- r : 하위 모든 디렉터리
- n : 줄번호 출력
- w : 한 단어별로 일치
반응형
'프로그래밍' 카테고리의 다른 글
[C#.NET] 상단 메뉴 만들기 (0) | 2022.06.30 |
---|---|
문자열 불일치 에러(feat. CR/LF) (0) | 2022.06.03 |
[Git] git 커밋 제외 파일만들기 (.gitignore+.env) (0) | 2022.05.13 |
[AVR] dep/main.o.d: No such file or directory 에러 (0) | 2022.02.07 |
Windows 서비스 등록 (0) | 2022.01.19 |
댓글