2017-01-20 9 views
4

확인해야 할 패턴이 84 개 있으며, 파일 이름 pattern.txt에 저장합니다.silver-searcher는 파일에서 PATTERN을 얻을 수 있습니까?

pattern.txt에서 이러한 패턴을 얻을 수있는 silver-searcher (Ag라고도 함)입니까?

grep은 파일에서 패턴을 읽는 옵션을 가지고 있지만 silver-searcher의 man 페이지에는 아무 것도 언급되어 있지 않습니다.

+0

silver-searcher == ag입니까? – fedorqui

+0

예, 동일합니다. – good5dog5

답변

3

아니요, ag에는 비슷한 -f 옵션이 없습니다. 간단한 접근법은 루프를 사용하여 패턴을 ag에 전달하는 것입니다. 예를 들어이 같은 패턴을 읽는 동안 루프를 사용할 수 있습니다

while read pattern; do ag "$pattern" -G '.*.txt' ; done < patterns.txt 

나는 AG와 GNU 평행 사용의 빠른 접근 방법을 제안한다. 아주 잘 함께 병렬 및 AG 일 : 여기

< patterns.txt | parallel 'ag --filename --parallel --color "{}" ' 

, 나는 다시 자신의 패턴이 일치하는 검색 AG 프로세스의 수를 생성합니다있는 병렬 각 패턴을 전달하고있다. 병렬은 시작할 프로세스 수에 대해 다소 똑똑하지만 마음의 내용으로 조정할 수 있습니다 (https://www.gnu.org/software/parallel/man.html). 즉, 병렬화로 84 패턴을 훨씬 빠르게 처리 할 수 ​​있습니다.