3

私のダミーファイルは次のようになります

cat dummy_file 
    Tom
    Jerry

パイプされたコンテンツは次のようになります

COMMAND | 
    Tom Cat
    Jerry Mouse
    Spike Dog

grepにあるパイプラインのみにしたいdummy_file
中間ファイルを作成することでこれを行うことができます。

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

中間ファイルを作成せずに、パイプされたコンテンツをgrepするだけでこれを達成するにはどうすればよいですか?
これを試しましたが、うまくいきません:

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

またはこれ:

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

2 に答える 2

2

grepstdin からの入力を受け入れます。やるだけ

COMMAND | grep -w -F -f dummy_file 
于 2013-11-04T20:45:59.587 に答える
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してください。

于 2013-11-04T20:41:58.100 に答える