ripgrep이 지정된 패턴으로 경로를 검색하도록 하고 싶습니다. 예를 들어
rg PATTERN --path REGEX
그 중 PATTERN은 grep 패턴이고, REGEX는 경로 매칭 패턴이다.
문서를 읽었지만 이 기능이 아직 포함되어 있는지 확실하지 않습니다.
답변1
-g/--glob
다음과 같은 플래그를 사용하십시오 .가이드에 기록된. 정규식 대신 와일드카드를 사용하지만 실제로는 동일한 작업을 수행합니다. 예를 들어:
rg PM_RESUME -g '*.h'
PM_RESUME
Linux 커널을 검사했을 때 C 헤더 파일에만 나타나는 것을 발견했습니다.
ripgrep은 정규식을 사용하여 파일 경로를 일치시키는 방법을 제공하지 않습니다. 대신, 꼭 정규식을 사용해야 한다면 xargs를 사용해야 합니다:
rg --files -0 | rg '.*\.h$' --null-data | xargs -0 rg PM_RESUME
그것을 파괴:
rg --files -0
로 시작하여 표준 출력에서 검색 중인 모든 파일을 인쇄합니다NUL
.rg '.*\.h$' --null-data
바이트를 보존하기 위해 목록에 있는 파일만.h
.--null-data
NUL
xargs -0 rg PM_RESUME
구분된 매개변수를 분할하여NUL
초기 정규식과 일치하는 파일 목록과 정확히 일치하는 ripgrep에 제공합니다.
완전한 정확성을 위해서는 바이트 처리가 NUL
필요합니다. 파일 경로에 공백이 없으면 명령이 더 간단합니다.
rg --files | rg '.*\.h$' | xargs rg PM_RESUME
답변2
당신이 사용할 수있는FD:
$ fd -p REGEX | xargs rg PATTERN