-r 스위치 없이 grep을 사용하여 상위 폴더의 하위 폴더에 있는 파일에서 텍스트 문자열을 찾는 방법

-r 스위치 없이 grep을 사용하여 상위 폴더의 하위 폴더에 있는 파일에서 텍스트 문자열을 찾는 방법

저는 Solaris 10을 사용하고 있으며 grepin /usr/bin/usr/xpg4/bin. . grep​모든 답변은 내 버전에서 사용할 수 없는 스위치에 -r대해 설명합니다 .-Rgrep

답변1

표준(POSIX) 구문은 다음과 같습니다.

find /path/to/parent -type f -exec grep 'XXX' /dev/null {} +

( 항상 파일 이름을 인쇄하는지 /dev/null확인하는 것입니다 ). grep이는 Solaris를 포함한 모든 POSIX 시스템에서 작동합니다. 작동하지 않는 것으로 알려진 유일한 90년대 이후 시스템은 오래된(지금은 매우 오래된) GNU 시스템입니다.

GNU는 처음에 이에 대한 -print0조건자와 옵션을 도입했습니다.-0xargs

find /path/to/parent -type f -print0 | xargs -0 grep 'XXX' /dev/null

이제 이를 지원하는 몇 가지 다른 구현이 있지만 Solaris는 지원하지 않습니다.

위에서는 이론적으로 파일이 없으면 -r실행을 방지하는 옵션을 추가하고 싶지만 그렇지 않습니다.grep가지고 다닐 수 있는이 특별한 경우에는 기능적 차이가 없습니다.

답변2

GNU 사용 grep(설치된 경우):

ggrep -A3 -B23 'word' -R /log/

정규식이 word일치하면 폴더의 모든 파일을 확인하고 파일 경로와 함께 출력을 표시합니다.

GNU는 플래그를 grep지원합니다 -R.

답변3

/usr/sfw/bin/ggrep간단히 다음과 같은 경로 에 있는 솔라리스의 ggrep을 사용하세요 .
/usr/sfw/bin/ggrep -H 'search-term' <file-name>*
특정 단어로 시작하는 파일 이름 그룹에서 검색어를 검색합니다.

관련 정보