grep 검색 기능 관련 질문

똥꼬의 이미지

보통 저는 문자열 검색을 아래 처럼 합니다.

#grep 찾는문자열 */*.c

그러면, 확장자가 c인 소스화일에서 찾는문자열의 위치를 출력해 주죠.

궁금한건 현재 디렉토리의 1 depth의 서브디렉토리까지만 검색을 한다는
것이며, 리커시브하게 현재 디렉토리의 모든 서브디렉토리까지 검색을
못한다는 겁니다. 어케하면 되죠?

hyunuck의 이미지

-R 이 있습니다.

똥꼬의 이미지

답변 감사합니다.
저 근데 아래처럼 -R 옵션을 줘도 아래의 예처럼
init_timer란 함수의 definition 부분을 못찾네요.
현재 디렉토리의 바로 아래의 서브디렉토리만 찾아서 못찾은거 같거덩요.

debian@debian:~/linux$ grep -R  'init_timer' */*.c
kernel/acct.c:          init_timer(&acct_timer);
kernel/fork.c:  init_timer(&p->real_timer);
kernel/sched.c: init_timer(&timer);
kernel/sched.c:extern void init_timervecs (void);
kernel/sched.c: init_timervecs();
kernel/timer.c:void init_timervecs (void)

-r 과 -R 옵션을 줘도 옵션을 않준거 하고 같은 결과로 나오거든요
[/code]

open source의 그날까지!

monpetit의 이미지

$ find . -name "*.h" | xargs grep init_timer 이렇게 해 보세요.

똥꼬의 이미지

감사합니다.
음 xargs란 툴은 첨인데.. 유용하군요.

먼저 답변 올려주신분도 감사하구여

open source의 그날까지!

alfalf의 이미지

find의 -exec 옵션을 사용해 보심은 어떨지...

$ find . -name "*.h" -exec grep -H init_timer {} \;