2017-04-05 8 views
1

의 내가 디렉토리에 두 개의 파일이 있다고 가정 해 봅시다 :ag를 사용하여 특정 문자로 시작하는 파일 만 검색하려면 어떻게합니까?

.test 
test.txt 

어떻게이 .로 시작 파일 만 내 ag 검색을 제한 할 수 있습니까?

많은 패턴을 시도했지만 어느 것도 효과가 없습니다.

+0

zsh의 확장을 사용하여이 작업을 수행하는 방법을 찾았지만 현재 디렉토리 ('ag foo. *'는'. *'는'.test'로 해석됩니다)의 파일을 나열하여 작동합니다. 이것은 현재의 필요로는 괜찮지 만 강력한 솔루션으로는 만족스럽지 않습니다. – astephenb

답변

1

어떻게하면 ag 검색을 .a로 시작하는 파일로 제한 할 수 있습니까? 이처럼

: 당신의 예에서

ag -u -G ^\..*$ PATTERN 

파일 .test가 숨겨져 있기 때문에 옵션 -u 유용합니다. 이 옵션은 아마도 당신이 검색에서 놓친 것일 것입니다. (모든 문자 :

  • ^ 의미 : 문자열
  • \.의 시작을 의미 는 점 문자
  • .* 의미

    나 정규 표현식 ^\..*$을 설명하게 .) 임의의 횟수 (*)

  • $은 선택 사항이다. 이 문자열의 끝이

주 일치하도록 표시 : 나는 검색이 누구의 이름이 정규 표현해야으로 .로 시작하는 파일에 한정되지 않고,보기 때문에 나는, AG에 대한 bug tracker을 열었다.


더 일반적으로는, 이름 정규식과 일치하는 파일에서 패턴을 검색하기 위해, 하나는 사용할 수 있습니다

ag -G REGEX PATTERN 

(ag --file-search-regex REGEX PATTERN와 동일)

는 AG에 대한 자세한 내용은 설명서를 참조하십시오.

+0

아, 그래서 이것은 현재 ag의 버그입니다! 운이없이 그 패턴의 많은 변형을 시도했습니다. 내가 따라갈 수 있도록 문제에 연결하는 데주의해야합니까? – astephenb

+0

예! 나는 내 대답을 편집했다. – Bludzee

+0

버그 추적기를 업데이트하여 디버그 정보를 제공했습니다 (ag 옵션'-D' 사용). – Bludzee