ripgrep 경로 패턴

ripgrep 경로 패턴

ripgrep이 지정된 패턴으로 경로를 검색하도록 하고 싶습니다. 예를 들어

rg PATTERN --path REGEX

그 중 PATTERN은 grep 패턴이고, REGEX는 경로 매칭 패턴이다.

문서를 읽었지만 이 기능이 아직 포함되어 있는지 확실하지 않습니다.

답변1

-g/--glob다음과 같은 플래그를 사용하십시오 .가이드에 기록된. 정규식 대신 와일드카드를 사용하지만 실제로는 동일한 작업을 수행합니다. 예를 들어:

rg PM_RESUME -g '*.h'

PM_RESUMELinux 커널을 검사했을 때 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-dataNUL
  • xargs -0 rg PM_RESUME구분된 매개변수를 분할하여 NUL초기 정규식과 일치하는 파일 목록과 정확히 일치하는 ripgrep에 제공합니다.

완전한 정확성을 위해서는 바이트 처리가 NUL필요합니다. 파일 경로에 공백이 없으면 명령이 더 간단합니다.

rg --files | rg '.*\.h$' | xargs rg PM_RESUME

답변2

당신이 사용할 수있는FD:

$ fd -p REGEX | xargs rg PATTERN

관련 정보