내가 어렸을 때 어떻게 이를 찾는 왔는지 이 솔루션을 통해 두 번:
find / -type f -exec grep -H 'text-to-find-here' {} \;
그러나 doesn& # 39, 빗나갔다. 모든 단일 파일 시스템에서 표시하십시오 보인다.
가까운 로만스였나 적절한 방법은 무엇일까요? 그렇지 않으면 어떻게 합니까? 이 매우 유용하게 사용할 수 있는 텍스트 파일을 찾을 수 있도록 문장열 약간만이라도 I& # 39 m, 몇몇 프로그래밍 프로젝트를 수행하는.
방법은 다음과 같습니다.
grep -rnw '/path/to/somewhere/' -e 'pattern'
이와 함께 ',', '제외할지 포함시키십시오 dir 제외시킵니다 사용할 수 있다', '기' 효율적인 검색:
& # 39 *. {c} - 네프, h = - 포함시키십시오 그렙 /path/to/somewhere/& # 39;; - e " pattern";
& # 39 dir1 = {} -, - dir 제외시킵니다 그렙 dir2, *.dst 네프 /path/to/somewhere/& # 39;; - e " pattern";
이 기능은 거의 동일한 목적을 달성할 수 있도록 잘 았겠습니다 가져다줄래요 같은 네거잖아
자세한 옵션 그렙 확인란 '남자'.
사용할 수 있습니다.
grep -r "string to be searched" /path/to/dir
이 또한 'r' 는 재귀 등 하위 디렉토리 경로에 지정되었습니까 검색할 수 있다. 이 파일 이름을 확인할 수 있습니다 물론 줄을 문자열이 있는 파일을 인쇄합니다.
또는 명령 시도 중인 것과 유사한 (예: javascript 파일을 검색할 수 있는 모든 (*.js):)
find . -name '*.js' -exec grep -i 'string to search for' {} \; -print
이렇게 하면 파일을 텍스트 줄을 인쇄인쇄) 가 있는 것은 아니지만 인쇄인쇄 파일 이름.
이와 함께, 우리는 이 너무 명령을 쓸 수 있다.
첫째, 내가 사용한 믿겠군 h '대신' '-l'. 또한 '\ {} 따옴표 안에 추가 시도할 수 있는 텍스트' 등이 뒤를 이었다.
find / -type f -exec grep -l "text-to-find-here" {} \;
bash-4.1$ find . -type f -exec grep -l "Apache License" {} \;
./net/java/jvnet-parent/5/jvnet-parent-5.pom
./commons-cli/commons-cli/1.3.1/commons-cli-1.3.1.pom
./io/swagger/swagger-project/1.5.10/swagger-project-1.5.10.pom
./io/netty/netty-transport/4.1.7.Final/netty-transport-4.1.7.Final.pom
./commons-codec/commons-codec/1.9/commons-codec-1.9.pom
./commons-io/commons-io/2.4/commons-io-2.4.pom
bash-4.1$
이 사건에 대해 사용하지 않는 경우에도 같은 text" "; vs " TEXT" ',' -i '스위치 무시하려면 경우, 사용할 수 있습니다. 자세한 내용은 here 읽을 수 있습니다.
ᄋ "이번 도움이 됩니다.
현재 폴더에서는 그렙 '검색' 재귀적으로 다음과 같은 도구를 사용할 수 있습니다.
grep -r "class foo" .
<, sup>, 참고: '-r' 검색 subdirectories.< /sup> 재귀적으로 -;;
글 로빙 구문을 사용하여 다음과 같은 특정 파일을 검색할 수도 있습니다.
grep "class foo" **/*.c
<, sup>, 참고: 글 로빙 옵션 ('') 를 사용하여 모든 파일을 검색하여 반복적으로 연장또는 통해 특정 패턴. 실행하십시오 활성하하려면 이 구문은: '-' s 글로브스타 쇼프트 제공합니다. /. 모든 파일을 사용할 수 있습니다. ',' 을 제외한 없이 숨겨져서 확장명으로) 또는 기타 pattern.< /sup>.
find . -name "*.php" -execdir grep -nH --color=auto foo {} ';'
'립그레프' 또는 사용합니다.
rg "class foo" .
설치 단계 또는 소스 코드 진단트리로 체크아웃합니다 <, sup>, doc, 깃허브 프로젝트 페이지 .< /sup>;
이 때문에 '에 지정된 파일을 하나의 파일' 이기티뇨레 는 무시됨 패턴을 일치됩니다 글롭 패턴을 동시에 여러 경로가 될 수 있습니다.
일반적으로 다음과 같은 매개 변수를 사용할 수 있습니다.
[12): https://github.com/monochromegane/the_platinum_searcher
find / -type f | xargs grep 'text-to-find-here'
이 형식은 보다 쉽게 기억할 수 있습니까 '찾기 - exec'.
이렇게 하면 출력입니다 컨텐트에서 파일 이름과 일치하는 선 (예:
/home/rob/file:text-to-find-here
옵션임 플래그 '그렙' 를 추가할 수 있습니다.
>. Linux 에서 특정 텍스트를 포함하는 모든 파일을 어떻게 찾습니까? >. (.) >. >. 이 솔루션을 통해 왔는지 두 번: >. >. '- - - H & # 39 text-to-find-here& 찾기 / exec 그렙 타입 f # 39;; '\ {}.
find / -type f -exec grep -sH 'text-to-find-here' {} \; 2>/dev/null
보다 빠르고 쉽게 같은 목적으로 도구가 있습니다 - 아래 참조. , # 39 에서 사용 가능한 플랫폼을 제공하는 것이 그들을 시험하노라 they& 물론, re:
rg 'text-to-find-here' / -l
ag 'text-to-find-here' / -l
ack 'text-to-find-here' / -l
참고: 이 아니라 ',' 2> 추가할 수 있습니다 / dev / nulll 명령의세 숨기기 위해 많은 오류 메시지.
sudo apt install silversearcher-ag
깃 (git) 및 기타 작동하잖아 긴밀한 협력을 통해 vcs. 그래서 니말은 won& # 39, t get a .git net/ 또는 어떤 다른 디렉터리입니다.
간단히 사용할 수 있습니다.
ag "Search query"
작업 및 it will do for you!
'Pwd' 에서 사용할 수 있습니다, 하향 레커싱 모든 디렉토리 검색
grep -rnw `pwd` -e "pattern"
, - e " pattern" 네프 그렙 ','
또는
'-' pattern" 그렙 네프 ";
위와 같은 일을 할 것이다!
다음은 몇 가지 목록을 검색하는 데 사용할 수 있는 명령 파일.
grep "text string to search” directory-path
grep [option] "text string to search” directory-path
grep -r "text string to search” directory-path
grep -r -H "text string to search” directory-path
egrep -R "word-1|word-2” directory-path
egrep -w -R "word-1|word-2” directory-path
find /path -type f -exec grep -l "string" {} \;
설명을 통해 설명
이 같은 파일을 찾을 수 있는 명령 및 기타 객체에는 디렉토리이며 주어진 경로를 찾을 수 있는 링크를 서브디렉토리가. # 39, t, 이 경우 해당 피레스나미스 마스크할 지정하십시오라는 don& 충족합니다 모든 디렉터리입니다 객체에는 열거합니다 한다.
-type f specifies that it should proceed only files, not directories etc.
-exec grep specifies that for every found file, it should run grep command, passing its filename as an argument to it, by replacing {} with the filename
실버 서처 () 는 두터운 도구에서는 립그레프 수 있지만, 더 좋다.
Up on Windows, Linux, Mac, 작동하잖아 대해 쓴 해커 뉴스 몇 개월 전 (이 기능은 https://partner. microsoft. 앤드루 Gallant& # 39 의 블로그 있는 깃허브 https://partner.):
[2]: 12564442? id = https://news.ycombinator.com/item
이것은 희망을 도움을 받는다.
조금 더 많은 정보를 제공할 수 있는 '확장' 그렙 출력입니다 얻을 수 있는 텍스트 파일의 줄 번호, 예를 들어, 이 문제는 다음과 같이 해결할 수 있습니다.
find . -type f -name "*.*" -print0 | xargs --null grep --with-filename --line-number --no-messages --color --ignore-case "searthtext"
그리고 만약 당신이 어떤 파일 유형은 생각해냈어요 검색을 좁히십시오 검색할 수 있습니다 (이 경우 '스파스 확장명은 하락한 specifying 파일 형식' 또는 '오드프만' 파일:
find . -type f \( -name "*.pas" -o -name "*.dfm" \) -print0 | xargs --null grep --with-filename --line-number --no-messages --color --ignore-case "searchtext"
파선-짧은 설명은 옵션: