반달가면 이글루에서 백업 - bahndal.egloos.com/498262
grep 명령을 이용하면 특정한 문자열을 포함하고 있는 파일들이 뭐가 있는지 찾을 수 있다. 훌륭하군!
일단 기본부터 차근차근 살펴보자. grep 명령의 기본 형식은 아래와 같다.
# [옵션]을 적용하여 [파일]의 내용을 검색, [문자열]을 찾음
grep [옵션] [문자열] [파일]
이제 아래의 예시를 보자. my_memo.txt 파일에서 abcd 문자열이 포함되어 있는지 검색하고 파일명과 함께 문자열이 포함된 행을 찾아 출력하는 것이다. -H 옵션을 주면 찾은 문자열뿐만 아니라 해당 파일명을 같이 출력해 준다. 파일명과 문자열은 콜론(:)으로 구분된다.
grep -H abcd my_memo.txt
my_memo.txt:abcdef
문자열은 필요 없고 파일명만 확인하고 싶다면 아래와 같이 -l 옵션을 추가하자.
grep -Hl abcd my_memo.txt
my_memo.txt
자, 이제 특정 디렉토리와 그 하위 디렉토리에 있는 여러개의 파일들 중에 특정한 문자열을 포함한 파일이 있는지 찾고 파일명을 확인해 보자. -r 옵션(recursive)을 이용하고 파일 대신 디렉토리를 지정하면 된다. 아래의 예시는 ~/Documents 디렉토리의 모든 파일을 검색, 내용에 abcd가 포함된 파일 찾아 파일명을 출력하는 경우이다.
grep -Hlr abcd ~/Documents
만약 특정 파일만 골라서 확인하고 싶다면 --include 옵션을 추가한다. 아래의 예시는 확장자가 txt인 파일만 대상으로 검색하는 경우이다.
grep -Hlr --include=*.txt abcd ~/Documents txt
파일 중에 v로 시작되는 파일은 제외하고 검색하려면 여기에 --exclude 옵션을 추가.
grep -Hlr --include=*.txt --exclude=v* abcd ~/Documents
'bash script' 카테고리의 다른 글
[bash: echo, bc] 진법 변경(2진수/16진수 변환 등) (0) | 2021.02.19 |
---|---|
[bash: seq] seq 명령의 유용한 옵션들 (0) | 2021.02.09 |
[bash: sleep] 1초 미만으로 쉬기 (0) | 2021.01.14 |
[bash: mktemp] 안전하게 임시 파일/디렉토리 만들기 (0) | 2021.01.06 |
[bash: cut, rev] 뒤쪽에서부터 문자열(단어) 가져오기 (0) | 2020.12.28 |