흔자
반응형

grep은 특정 패턴과 일치하는 파일을 찾아서 출력하는 명령어다.

grep은 find, ps와 같은 다른 명령어와 함께 쓰는 경우에 효율적인 사용이 가능하다.


grep

# 사용법
grep [옵션] [패턴] [파일명]

 

 


/home/test/test.txt

테스트를 진행한 test.txt의 파일 내용

# test.txt 내용
1. test [test]
2. test
3. test

 

파일명을 디렉터리로 잘 못썼을 경우

# 파일명을 디렉토리로 쓰게 되면 출력되는 문구
root@ubuntu:/home/test# grep 'test' /home/test
grep: /home/test: Is a directory

 

 

특정 파일에서 특정 문자열 찾기

# /home/test/test.txt 파일에 'test' 문자열 찾기
grep 'test' /home/test/test.txt
# grep 'test' /home/test/test.txt 출력
1. test [test]
2. test
3. test

 

 

다수의 파일에서 특정 문자열 찾기

# /home/test/test.txt /home/test/test2.txt 파일에 'test' 문자열 찾기
grep 'test' /home/test/test.txt /home/test/test2.txt
# grep 'test' /home/test/test.txt /home/test/test2.txt 출력
/home/test/test.txt:1. test [test]
/home/test/test.txt:2. test
/home/test/test.txt:3. test
/home/test/test2.txt:1. test [test]
/home/test/test2.txt:2. test
/home/test/test2.txt:3. test

 

 

현재 디렉토리 하위에 있는 모든 파일에서 특정 문자열 찾기

grep 'test' *
# 현재 경로 /home/test
# grep 'test' * 출력
test.txt:1. test [test]
test.txt:2. test
test.txt:3. test

 

 

현재 디렉토리 하위에 있는 특정 확장자에서 특정 문자열 찾기 

# .txt 확장자를 가진 파일에서 'test' 문자열 찾기
grep 'test' *.txt
# grep 'test' *.txt 출력
1. test [test]
2. test
3. test

 

 

옵션

# 자주 사용하는 옵션

# 대소문자를 구분하지 않는 행 출력
-i --ignore-case

# 패턴과 일치하지 않는 행 출력
-v, --invert-match
 
# 일치하는 행의 숫자를 출력
-c, --count

# 포함된 행의 번호 함께 출력
-n, --line-number

# 하위 디렉토리 포함 모든파일에서 검색
-r, --recursive

 

반응형
profile

흔자

@heun_n

즐겁게 개발하고 싶은 사람입니다.