1. grep 사용법
grep [옵션][패턴][파일명]
1) 문자열로 찾기
- 특정 파일에서 'dozzing' 문자열 찾기
grep 'dozzing' 파일명
- 여러개의 파일에서 'dozzing' 문자열 찾기
grep 'dozzing' 파일명1 파일명2
- 현재 디렉토리내에 있는 모든 파일에서 'dozzing' 문자열 찾기
grep 'dozzing' *
- 특정 확장자를 가진 모든 파일에서 'dozzing' 문자열 찾기
grep 'dozzing' *.txt
2) 정규표현식으로 찾기
- 특정 파일에서 문자열이 포함된 행을 찾는다.
grep '^[ab]' 파일명
-
특정 파일에서 a로 시작하는 모든 단어를 찾는다.
grep 'a*' 파일명
-
특정 파일에서 a로 시작하고 z로 끝나는 5자리 단어를 찾는다.
grep 'a...z' 파일명
-
특정 파일에서 a,b,c로 시작하는 단어를 모두 찾는다.
grep [a-c] 파일명
-
특정 파일에서 apple 또는 Apple로 시작하는 단어를 모두 찾는다.
grep [aA]pple 파일명
-
특정 파일에서 a나 b로 시작되는 모든 행을 찾는다.
grep '^[ab]' 파일명
-
특정 파일에서 apple로 시작되고 0나 9의 숫자로 끝나로 시작되는 모든 행을 찾는다.
grep 'apple'[0-9] 파일명
3) 자주 사용하는 옵션
- -c : 일치하는 행의 수를 출력한다.
- -i : 대소문자를 구별하지 않는다.
- -v : 일치하지 않는 행만 출력한다.
- -n : 포함된 행의 번호를 함께 출력한다.
- -l : 패턴이 포함된 파일의 이름을 출력한다.
- -w : 단어와 일치하는 행만 출력한다.
- -x : 라인과 일치하는 행만 출력한다.
- -r : 하위 디렉토리를 포함한 모든 파일에서 검색한다.
- -m 숫자 : 최대로 표시될 수 있는 결과를 제한한다.
- -E : 찾을 패턴을 정규 표현식으로 찾는다.
- -F : 찾을 패턴을 문자열로 찾는다.
2. 리눅스 와일드카드
- file명 혹은 directory 이름을 패턴의 형식으로 출력하게 만들어주는 명령어
1) *
- 일치 되는 모든 "문자열"을 찾아주는 명령어
$ ls * // 현재 디렉토리에 있는 모든 파일 list 출력
$ ls *.txt // 현재 디렉토리에 있는 .txt 파일 list 출력
$ ls do* // do으로 시작하는 현재 디렉토리에 있는 모든 파일 출력
$ ls *zz* // zz가 들어있는 현재 디렉토리에 있는 모든 파일 출력
2) ?
- 일치 되는 모든 "문자"를 찾아주는 명령어
- ? 에 들어갈 수 있는 패턴을 설정해주면 ?에 들어갈 문자를 알지 못하더라도 원하는 내용을 출력하거나 삭제할 수 있음
$ ls m???.c // main.c 출력
$ ls a? // a1 a2 a3 출력
$ ls ?ozzin?.t?t // dozzing.txt 출력
3) []
- [] 안에 있는 caracter들의 패턴에 일치하는 것을 찾아주는 명령어
- [] 안에 숫자의 패턴을 넣고싶다면 [1 - 9] 를 넣게 되면 그에 맞게 찾아줌
- [ab] 이렇게 설정하게 되면, a와 b로 시작하는 것을 찾아줌
$ ls [a]* // a1 a2 a3 a4 출력
$ ls [a][1-4] // a1 a2 a3 a4 출력
$ ls [mh]* // main.c happy.txt 출력 // *[mh] 할 경우에는 m과 h가 들어가 있는 것을 모두 출력해줌
$ ls *[2-4] // a2 a3 a4