리눅스 검색 명령어( find, grep )
파일 검색을 할때 사용하는 명령어 find
파일내 문자열 검색 명령어 grep
1. 파일, 디렉토리 검색 명령어 : find
사용1) 현재+하위 디렉토리의 모든 파일명, 디렉토리명 출력됨
find . [검색문자열]
예제) find .
--> 현재 폴더의 파일, 하위폴더경로를 포함한 파일 등 리스트로 보여줌
find . yes
--> 현재 폴더의 파일, 하위폴더경로를 포함한 파일 등 리스트로 보여주고
맨 하단에 yes 문자가 들어간 폴더명, 파일명으로 검색된 리스트를 보여줌
사용2) 특정 문자열을 포함하는 디렉토리 및 파일 검색 ( -name 옵션)
find . -name "문자열"
=> 현재 폴더 이하에서 해당 문자열과 같은 이름을 가진 파일과 디렉토리 모두 출력
=> 문자열을 포함하는 조건으로 검색시 *(모든 문자)와 ?(한 문자)사용
=> 파일 또는 디렉토리만 검색하도록 구분할때 -type옵션 사용 ( f 파일만 / d 디렉토리만)
예제) find . -name "yes.log"
find . -name "*yes*"
find . -name "yes*" --> yes로 시작하는 파일명 검색
find . -name "?yes.log" --> yes앞에 한개 문자가 들어간 파일명 검색
find . -type f -name "*.log" --> .log를 포함한 파일만 검색
사용3) 특정 문자열을 포함하지 않는 디렉토리 및 파일 검색 ( ! 옵션 사용 )
find . -type f ! -name "문자열"
예제) find . -type f ! -name "*.log"
--> .log문자(확장자)가 들어간 파일을 제외하고 검색하여 보여줌
사용4) 현재 디렉토리에서만 검색 ( -maxdepth 옵션 사용 )
find -maxdepth [숫자] -type f
=> maxdepth옵션 뒤에 숫자를 이용해 원하는 depth까지 폴더를 검색하도록 지정
검색 하고 싶은 폴더의 depth를 1로 지정하면 현재 디렉토리에서만 검색 지정
예제) find -maxdepth 1 -type f --> 현재 디렉토리에서만 파일 검색
사용5) find 명령을 이용한 검색 결과로 다른 명령어 연결 수행 ( -exec옵션 사용 )
find . -type f ! -name "문자열" -exec "명령어{}" \;
=> {}은 find를 이용해 찾은 목록, \;은 명령의 끝임을 나타냄
=> 여러 명령을 줄때는 find . -type f ! -name "문자열" -exec sh -c "명령1;명령2;명령3;명령4;" \;
명령을 ;으로 구분해줌
예제) find . -type f ! -name "*.log" -exec "grep yes{}" \;
--> .log 문자열이 들어간 검색된 파일에서 파일내에 yes문자 포함 여부를 표시해서 리스트로 보여줌
2. 파일에서 문자열 검색 명령어: grep
사용1) grep [검색문자] [검색할 파일명(하위폴더에 있는 파일이면 앞에 경로를 붙여줌)]
예제) grep yes dispatcher.log
grep yes ./temp/dispatcher.log
사용2) grep [옵션] [검색문자] [검색할 파일명(하위폴더에 있는 파일이면 앞에 경로를 붙여줌)]
[옵션]
-c : 검색할 문자열이 속한 행의 개수 출력
-H : 파일 이름과 함께 출력
-i : 대소문자 구분없이 출력
-n : 찾는 문자가 속한 행의 번호와 같이 출력
-r : 현재 경로부터 하위 경로까지 검색하여 출력
-v : 찾으려고 하는 문자가 없는 행을 출력
-w : 패턴 표현식을 하나의 단어로 취급하여 검색
예제) grep -c yes comm.log
--> yes가 들어간 문구의 행의 갯수를 출력
grep -c yes *comm*.log
--> yes가 들어간 문구를 파일명에 comm이 들어가는 log확장자를 가진 파일 중에서 행의 갯수를 출력
grep -r yes temp/
--> 현재 폴더 및 하위 폴더인 temp폴더에서 yes 들어간 문구를 검색하여 출력
grep -r yes .
--> 현재 폴더에서 yes 문자 검색
사용3) 문자열 검색을 포함한 명령어 연결 수행 예제
ps -ef|grep yes
--> 전체 수행중인 프로세스 중에서 'yes'문구 들어간 문서 추출
'Development > Unix.Linux' 카테고리의 다른 글
리눅스, 아파치, 톰캣, 오라클 버전 확인 방법 (0) | 2018.08.24 |
---|---|
주기적 작업 수행을 위한 배치 등록 파일 crontab (0) | 2018.08.16 |
리눅스 tar 압축/해제 방법 (0) | 2018.08.10 |
리눅스 문서 보기/편집하기 vi visual editor) 편집기 사용 명령어 (0) | 2018.08.09 |
리눅스 명령 단축어(별칭) 생성 alias (0) | 2018.08.08 |