Linux grep 명령어 cheatsheet
기본
grep [pattern] FILE
grep '^[A,E].*o' f.txt A 나 E 로 시작하고 o 로 끝나는 단어 찾기
grep -f pat.txt f.txt Scan f.txt, using contents of pat.txt as regex
grep -i Gnu f.txt Find "gnu" in f.txt, ignoring capitalization
grep -v gnu f.txt Find all lines not containing "gnu" (invert match)
grep -w 'a.*o' f.txt Find whole word matches only, ignoring substrings
grep -x 'a.*o' f.txt Find whole line matches only, as in ^(a.*o)$
출력
-c Print only the number of lines containing a match
--colo[u]r Display matches in color
-l Print the names of files with matches
-L Print the names of files searched that contained no matches
-o Print only the matched part of a line
-s Suppress errors (such as non-existent or unreadable files)
-A n Print n number of lines after a matching line
-B n Print n number of lines before a matching line
-C n Print n number of lines before and after a matching line
접두사 출력
-b Print the byte offset of the match within the input file
-H Print the filename containing a match
-h Do not print the filename containing a match
-n Print the line number of each match
-T Print an initial Tab before matches so that output is neatly aligned
File and directory selection
-a Process a binary file as if it were text
-D <skip|read> Skip or read a FIFO, device, or socket
-d <skip|read|recurse> Skip, read, or recurse through a directory
--exclude '*.sh' Do not search any file with the .sh suffix
--exclude-from FILE Skip any file listed in FILE
--exclude-dir *foo Skip any directory ending in foo
-r When a directory is encountered, search files in it
-R Search directories and follow symlinks
Variants
-G Use basic regex (this is the default)
-E Extended regex
-F Interpret the search pattern as a fixed string, not regex
-P Use Perl regex (PCRE)
Regular expression
. Any single character
? Match preceding item zero or one time
* Match preceding item zero or more times
+ Match preceding item one or more times
{2} Match preceding item two times
{3,} Match preceding item three or more times
{,4} Match preceding item at most four times
{1,5} Match preceding item at least once, but no more than five times
[A,B] Match A or B [:alnum:] Alphanumeric character
[3-9] Match all digits 3 to 9 [:alpha:] Alphabetic character
^ Start of a line [:digit:] Digits 0 through 9
$ End of a line [:punct:] Punctuation
\s Space [:space:] Space
-a | Process a binary file as if it were text |
-D <skip|read> | Skip or read a FIFO, device, or socket |
-d <skip|read|recurse> | Skip, read, or recurse through a directory |