Post

Linux grep

1. grep

지정한 문자열을 포함하고 있는 행을 검색한다.

2. 주요 옵션

옵션설명
-i대소문자 구분없이 검색
-v해당 문자를 제외하고 검색
-n검색한 문자의 행 출력
-l검색한 문자가 들어 있는 파일 이름 출력

3. 사용예제

기본 문법은 다음과 같다.

1
2
3
4
5
grep [OPTIONS] PATTERN [FILE...]
grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]

# 파이프를 이용한 데이터 입력
cat file_name.txt | grep PATTERN

주요 사용방법은 다음과 같다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# test.txt 파일 내용
$ cat test.txt
a
b
c
d
e
f
g
h
i
j
k

# 대소문자 구분없이 확인
$ grep -i A test.txt
a

# 해당 문자를 제외하고 검색
$ grep -v a test.txt
b
c
d
e
f
g
h
i
j
k

# 검색한 문자의 행 번호를 출력
$ grep -n a test.txt
1:a

# 검색한 문자가 포함된 파일 이름 출력
$ grep -l a test.txt
test.txt

1) 여러개의 파일에서 파일명과 함께 검색

1
2
3
4
# 여러개의 파일에서 파일명과 함께 검색한 문자 출력
$ grep a *
test2.txt:a
test.txt:a

2) 정규식을 이용한 검색

1
2
3
4
# 정규식을 이용한 검색
$ cat test.txt | grep "[a|b]"
a
b

3) 문자가 있는 파일 출력

jar파일에서 클래스 찾기

1
2
$ grep -l "org.codehaus.jackson.jaxrs.JacksonJaxbJsonProvider" * 
jackson-jaxrs-1.9.13.jar

[출처 및 참고]

This post is licensed under CC BY 4.0 by the author.