티스토리 뷰
grep -rl 검색할문자열 *
grep -inr "패턴매칭" // 대소구분없이
grep [찾고 싶은 문자] * -r
이렇게 하면 현재 디렉토리에 있는 문서와 하부 디렉토리 전부를 끍어서 검색해줍니다.
----------------------------------------------------
find . -name \'*.c\' -exec grep recursive {} \\; -print
(.)은 현재방으로 현재방에서 (find)찾아라. 파일명(-name)이 (*.c) 즉 확장자가 c인 파일을 찾아라. 그리고 만약에 찾았으면 (-exec)는 실행하라, grep recursive는 recursive라는 단어를 파일내용중에서 추출하라는 명령이죠.
따라서 확장자가 c인 파일 내용중 recursive라는 단어가 든 파일의 부분 내용을 출력합니다. {} \\; 이것은 -exec를 사용할때 따라오는 관례라고나 할까요. ^^
끝으로 위의 결과물을 -print로 화면에 출력하라는 의미입니다.
참고로
find . -name \'*.c\' -exec grep recursive {} \\; -print > a.txt 하면 모든 결과물을 a.txt에 저장을 해 준답니다. 다양하게 응용해보심 재미있을 겁니다.
find / \\(-name \'*.tmp\' -o -name \'*.txt\'\\) -exec rm {} \\;
==> 이건 / 이하 모든 디렉토리에서 확장자가 tmp, txt인 모든 파일을 삭제하는 명령입니다. -o는 OR로 둘중에 하나라도 있으면 참이죠.
{} 은.. find 가 찾은 \'파일\' 을 가리키는 것입니다.
\\; 은...
find 가 -exec 옵션 뒤에 오는 명령이 어디까지가 명령인지 구분하기 위해서 \'명령의 끝\' 을 명시하는 것입니다.
find . -name foo -exec rm {} -print
와 같이 하면, find 는 찾은 파일에 대해 실행해야 할 명령이 rm foo -print 인지 rm foo 인지 알 수 없겠죠? ^^;
그리고, \\(백슬래쉬) 문자는 쉘이 ; 을 \'명령의 끝\' 처럼 해석하는 것을 방지하여
; 문자가 find 에 제대로 전달되도록 하기 위해서 \\ 를 앞에 붙여 준 것이구요.
find ./ -name "*.jsp" -exec grep '문자열' {} \; -print
- Total
- Today
- Yesterday
- 통신
- 오라클
- 흡연
- 설탕
- DNA
- 믹스커피
- 금연일기
- 보건
- java
- 금단증상
- 다이어트
- 보건소
- 과학
- 부작용
- 상식
- 챔픽스 후기 금연
- 단백질
- oracle
- 냄새
- 유전자
- 뇌
- 지진
- 생명과학
- 챔픽스
- 윈도우10
- 챔픽스 후기
- 100일
- 인공지능
- 의료
- 금연
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |