미분류

Linux find, grep 명령어의 활용

청소도구함 2022. 5. 11.
728x90
300x250

업무를 하면서 find, grep 명령어를 잘 사용하면 할수록 편리하다는 것을 느꼈습니다.

하지만 아직 저의 실력은 미천하기 때문에 이번에는 find, grep을 공부하면서

일의 효율을 높이고자 합니다.

 

find는 파일을 찾는 기본적인 명령어인데 특정 이름의 파일 및 특징을 가진 파일을 찾는 명령어입니다.

find [PATH]
-> 해당 PATH에 있는 파일 및 디렉토리 표시
find . -name [FILE]
-> 현재 디렉토리 아래 모든 파일 및 하위 디렉토리에서 파일 검색
find . -name "PP*"
->  PP로 시작하는 파일 검색
find . -name "*PP*"
-> PP가 포함된 파일 검색
find . -name "*.txt" -delete
-> txt 확장자를 가진 모든 파일 검색 및 삭제

 

grep은 문자열을 찾는 기본적인 명령어인데 텍스트 및 로그 파일에서 특정 문자열을 찾는 명령어입니다.

grep 옵션 "문자열"[파일명]
-i : 대소문자 구분 X
-w  : 문자와 한 단어로 일치해야 출력
-l : 문자가 들어간 파일 이름을 출력
-r : 하위 디렉토리에서도 문자 검색
-A : 특정문자 아래 추가로 여러행 출력

grep "^문자열"
-> 문자열로 행이 시작되는 경우 출력
grep "문자열&" 
-> 문자열로 행이 끝나는 경우 출력
grep -A2 "문자열" 
-> 해당 문자열이 들어간 행을 포함하여 아래 2행을 출력
grep "문자열" *
-> 현재 위치의 모든 파일에서 특정 문자열 출력
grep "문자열"[파일명] >> [저장할 파일명]
-> 문자열을 찾아 따로 파일에 저장

 

 

 

그럼 find와 grep의 사용방법을 알려드리겠습니다.

find . -name "*.c" -exec grep -n "include" {} \;
-> .c란 파일들 중 "include'를 포함한 행 출력
find . -type f|xargs grep "string"
-> 현재 디렉토리위치에서 하위디렉토리를 포함하여 string이란 문자열을 포함한 파일검색
grep string 'find . -name \*\cpp'
-> 파일 이름과 내용을 출력
grep -l string 'find . -name \*\cpp'
-> 파일 이름만 출력

 

 

- ' | ' 파이프 라인의 뜻은 왼쪽 프로그램의 실행 결과를 오른쪽 프로그램의 입력으로 공급하는 것입니다.

- zgerp은 압축된 파일에서 문자열을 찾을때 사용하는 명령어 입니다.

- xargs는 파이프 ' | '를 통해 입력 받아서 xargs 뒤에 있는 명령어한테 파라미터를 주는 것입니다.

728x90
300x250

댓글