documentation. GNU 기준.
global search for regular expression and print out의 약자다.
파일 내에 특정 조건을 만족하는 문자열이 있는지를 확인, 이를 하이라이트 해서 보여준다.
파일 뿐만 아니라 특정 출력물에 대해서도 파이프라이닝(pipelining)을 통해 활용이 가능하다.
매우 자주 쓰이는 명령어다.
grep [options] pattern [files]
options
: grep
과 관련된 설정들
pattern
: 필터링용 regular expression
files
: 필터링 대상 파일. 여러개 가능.
$ cat example.txt
sed is a stream editor.
A stream editor is used to perform basic text transformations on an input stream (a file or input from a pipeline).
While in some ways similar to an editor which permits scripted edits (such as ed), sed works by making only one pass over the input(s), and is consequently more efficient.
But it is sed’s ability to filter text in a pipeline which particularly distinguishes it from other types of editors.
-i
)-c
)$ grep -c "a" example.txt
4
-l
)sycho@DESKTOP-4RPUOID:~$ ls
Backend-Practice demo example.txt nums.txt words.txt
data.txt devops-directive-docker-course months.txt sorted.txt wordsup.txt
sycho@DESKTOP-4RPUOID:~$ grep -l "ex" *
grep: Backend-Practice: Is a directory
grep: demo: Is a directory
grep: devops-directive-docker-course: Is a directory
example.txt
-w
)grep
은 기본적으로 pattern부분이 단어의 일부분의 형태로라도 나오면 일단 나온다고 취급을 하는데, 특정 단어가 정확히 포함하는 경우에 대해 찾고 싶으면 -w
를 사용해야 한다.-o
)grep
은 기본적으로 pattern부분이 나타나는 줄들을 출력하는데, pattern이 나오는 문자열만 딱 출력하고 싶으면 -o
를 사용해야 한다.-n
)-v
)^
)$
)-e
)여러번 사용 가능
해당 pattern들 중 하나라도 만족하는 줄이 있으면 이를 전시한다.
-f
)-A
, -B
, -C
)-A
는 pattern이 등장한 줄의 이전 출도 출력한다. -B
는 이후의 줄을 출력한다. -C
는 이전/이후 줄을 출력한다.
세개 모두 옆에 숫자를 통해 이전/이후의 몇개의 줄을 출력할지를 지정한다.
이전/이후 줄이 pattern에서 등장한 줄이라면 딱히 추가로 출력하진 않는다.
-R
)이 경우 파일 대신 재귀적으로 탐색할 디렉토리를 지정해야 한다.
어떤 파일에서 등장하는지도 나온다.
-n
을 사용하자.