[Linux/리눅스]grep, egrep, fgrep, find - 파일 찾기

코코._.

·

2021. 6. 16. 13:38

728x90

 

grep

grep은 파일에서 특정 문자열을 찾는데 사용되는 명령어이다. 메타문자를 활용하면 조건을 활용하여 더 상세한 검색이 가능하다.

 

[사용법]

grep [옵션] [찾을 문자열] [파일명]

 

[옵션]

-c 해당 문자열이 들어있는 라인의 개수를 출력
-n 라인의 번호를 함께 출력
-i 문자열의 대소문자 구분 없이 검색
-l 문자열을 포함하는 파일의 이름만 출력
-v 문자열이 포함되어 있지 않은 라인만 출력
-w 문자와 한 단어로 일치해야 출력
-x 패턴이 전체 줄과 일치하는 줄만 출력

[메타문자]

메타문자 역할 예시 설명
^ 줄의 시작을 지정 ^abc abc로 행이 시작되는 경우 출력
$ 줄의 끝을 지정 abc$ abc로 행이 끝나는 경우 출력
. 하나의 문자와 대응 a...c a다음에 임의의 3글자가 있고 c가 나오는 문자열 출력
* 0개 혹은 임의 개수의 문자와 대응 *abc abc 앞에 공백 혹은 다른 문자가 있을 경우 출력
[] []안의 문자와 대응 [abc]de 'a' 'b' 'c' 중 하나 이상의 문자가 일치하고 뒤에 'de'가 붙는 경우 출력
[^] []안의 문자를 제외한 문자와 대응 [^abc]de 'a' 'b' 'c'에 해당하지 않는 문자 뒤에 'de'가 붙는 경우 출력

 

 

 

egrep

egrep이란 여러개의 문자열을 동시에 찾을 수 있는 명령어이다. 또한 메타문자 이외에 정규표현식 메타문자가 추가 되었다.
[사용법]

egrep [옵션] [패턴] [파일명]

[정규표현식 메타문자]

+ +앞의 표현식이 1회 이상 나타남
? ? 앞의 표현식이 0회 또는 1회 나타남
| 문자열간의 OR 연산자
() 정규 표현식을 둘러쌈

 

 

 

fgrep

fgrep는 grep과 동일하나, 문자열 부분에 위치한 모든 문자를 "문자"로 취급한다. 따라서, 특수문자가 들어간 문자 검색이 가능하다.

[사용법]

fgrep [옵션] [찾을 문자열] [파일명]

 

 

 

find

find는 원하는 파일이나 디렉터리를 찾아주는 명령어이다. 파일명, 파일 사이즈, 파일타입 등으로 검색이 가능하다.

 

[사용법]

find [검색할 위치] [옵션] [Action]

[옵션]

-empty 빈 파일
-uid n 파일의 소유자 ID가 n인 파일
-gid n 그룹ID가 n인 파일
-group 그룹명 지정한 그룹명에 소속된 파일
-name 파일명 파일명이 일치하는 파일
-newer 파일 지정한 파일보다 더 최근에 변경된 적이 있는 파일
-used n 파일 수정 후 최근 n일 이후에 접근한 적이 있는 파일
-amin n n분 전에 접근한 적이 있는 파일
-mmin n n분 전에 수정한 적이 있는 파일
-anerwer 파일명 지정한 파일보다 더 최근에 접근한 적이 있는 파일
-atime n 최근 n*24 시간 전에 접근한 적이 있는 파일
-mtime n 최근 n*24 시간 이전에 변경된 적이 있는 파일
-nogroup 소속그룹이 존재하지 않는 파일
-nouser 소유자가 없는 파일
-path 패턴 지정된 문자열 패턴에 해당하는 경로에서 검색.
-size n[cwbk] n의 디스크공간을 차지하는 파일. 파일용량이 아닌 파일이 차지하는 공간 (c:byte/w:2byte/b:블록단위/k:kbytes)
-type [bcdpfls] 지정한 파일타입에 해당하는 파일
(b:블럭파일/c:특정 문자/d:디렉토리/p:파이프/f:정규표현 일반파일/l:링크/s:소켓)

 

[Action]

-delete : 검색된 파일들을 삭제
-exec command : 검색된 파일들에 지정된 명령 실행
-ls : 'ls - l' 과 같은 역할
-ok command ; : -exec 와 같지만 명령을 실행할 때마다 실행 의사를 물어본다.
-print : 검색된 파일리스트를 출력

300x250

'프로그래밍 > Linux' 카테고리의 다른 글

[Linux/리눅스] diff | cmp | comm - 파일 내용 비교  (1) 2021.06.14