2013-11-04 4 views
3

내 더미 파일 보인다.
중간 파일을 작성하면됩니다.그렙 파일 내용은

COMMAND > intermediate_file 
grep -w -F -f dummy_file intermediate file 
    Tom Cat 
    Jerry Mouse 

어떻게하면 중간 파일을 만들지 않고 grep'ing piped 콘텐츠를 만들 수 있습니까?
이 시도했지만 작동하지 않습니다 :

COMMAND | 
    xargs -I {} grep -w -F -f dummy_file -- NO RESULT 

또는이 :

COMMAND | 
    xargs -I {} grep {} -w -F -f dummy_file -- ALL LINES ARE PRINTED 
+1

당신이 명령의 출력을 파이프 수 있으며 grep : 명령 | grep "regex" –

+0

예 : ps aux | grep root –

+0

@Giudude Thanks! 그것은 더 어려울지라도. – PoGibas

답변

2

grep은 stdin으로부터 입력을 받아들입니다. 그냥 할

COMMAND | grep -w -F -f dummy_file 
0

당신은 join 명령을 사용할 수 있습니다)

join --nonocheck-order -j1 <(COMMAND|sort) <(cat dummy_file|sort)|cut -d -f1 
# -j1 indicates the column to join in the two commands output 
# it's equivalent to -11 -11 (first and second output) 
# cut to print only the first column which is common to two orders 

은 자세한 내용은 man join를 참조하십시오.

+0

이것은 단지 'join'이 지정된 열에 조인되기 때문에 우연히 만 작동하며, 특정 데이터 세트가 열 1에 필수 정보를 가지고있는 것은 사실이지만 일반적으로 데이터는 1 열 또는 2 열 또는 15 열을 찾고있을 수 있습니다. .. 그리고'join'은 정말로 그것을 다루지 않을 것입니다. –

+0

@JonathanLeffler 그래서 최적의 솔루션을 제안하기 위해서는 완벽한 데이터 세트가 필요합니다. 그렇지 않으면 나는 대안을 제시했을 것이다 ... 그리고 약간의 조정 (또는 솔루션을 완전히 바꾸는 것)을 의미한다고하더라도 여전히 사용될 수있다. –