[Linux]파일 필터링(파일 내용 검색)
파일 내용을 검색하는 명령어는 grep 명령어이다.
사용법
$ grep [옵션] 패턴 파일명들
- 지정한 파일에 특정 문자열(패턴)이 들어있는지 검색
옵션
- -i : 대소문자를 무시하고 검색
- -l : 해당 패턴이 들어있는 파일 이름을 출력
- -n : 각 줄의 줄 번호도 함께 출력
- -v : 명시된 패턴을 포함하지 않는 줄을 출력
- -c : 패턴과 일치하는 줄 수를 출력
- -w : 패턴이 하나의 단어로 된것만 검색
grep 명령어 : 정규식
- 특정한 규칙을 가진 문자열의 집합을 표현하는데 사용하는 형식 언어
- 구성요소 : 앵커, 문자집합, 변환자
- 앵커 : 검색시 한줄에서 패턴의 위치를 표현(^,$)
- 문자집합 : 하나이상의 문자들을 표현(알파벳,숫자..)
- 변환자 : 이전 문자 집합의 반복횟수 지정
특수 문자
- ? : 한글자 혹은 없음을 의미
- . : 임의의 한 문자를 의미
-
- : 바로 앞의 것을 0번 이상 반복
- [] : [과 ] 사이의 문자 중 하나를 의미(- 기호 : 문자의 범위를 지정)
- [^..] : [^과 ] 사이의 문자를 제외한 나머지 문자중 하나를 의미
- ^ : ^문자열은 문자열로 시작하는 줄을 의미
- $ : 문자열$은 문자열로 끝나는 줄을 나타낸다.
예시
hoestory.txt
hello hoestory good Hoestory age 24 height 185cm hoestory haha weight 1kg hoestory caha GOOD BYE |
$ grep hoestory hoestory.txt
//출력 결과
hello hoestory good
hoestory haha
hoestory caha
- hoestory.txt파일에서 hoestory가 들어간 줄 출력
$ grep -i hoestory hoestory.txt
// 출력 결과
hello hoestory good
Hoestroy age 24
hoestory haha
hoestory caha
- -i 옵션으로 대소문자 무시하고 hoestory가 들어간 줄 출력
$ grep -iv good hoestory.txt
// 출력 결과물
Hoestory age 24
hoestory haha
height 185cm
weight 1kg
- -i 옵션으로 대소문자 무시한 good을 검색하고 -v 옵션으로 good이 안들어간 줄 출력
$ grep -ic hoestory hoestroy.txt
// 출력 결과물
3
- -i 옵션으로 대소문자 무시한 good을 -c 옵션으로 몇개 있는지 출력
$ grep '[0-9].*' hoestory.txt
// 출력 결과
Hoestory age 24
height 185cm
weight 1kg
- [0-9] : 0~9 아무숫자
- . : 임의의 한문자
- * : 앞에거를 0번이상 반복
$ grep 'd$' hoestory.txt
//출력 결과
hello hoestory good
- 문자열 끝이 d로 끝나는 줄 출력
$ grep '[^h]aha' hoestory.txt
// 출력 결과
hoestory caha
- h를 제외함 문자aha인 줄 출력
$ grep '^G' hoestory.txt
// 출력 결과
GOOD BYE
- 시작 문자가 'G'인 줄 출력
'Linux' 카테고리의 다른 글
[Linux]명령어 스케줄링 (0) | 2021.12.12 |
---|---|
[Linux]파일 정렬 (0) | 2021.12.01 |
[Linux]파일 속성으로 파일 찾기 (0) | 2021.11.29 |
댓글
이 글 공유하기
다른 글
-
[Linux]명령어 스케줄링
[Linux]명령어 스케줄링
2021.12.12 -
[Linux]파일 정렬
[Linux]파일 정렬
2021.12.01 -
[Linux]파일 속성으로 파일 찾기
[Linux]파일 속성으로 파일 찾기
2021.11.29