3

我的虚拟文件看起来像这样

cat dummy_file 
    Tom
    Jerry

我的管道内容看起来像这样

COMMAND | 
    Tom Cat
    Jerry Mouse
    Spike Dog

我只想grepdummy_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

grep接受来自标准输入的输入。做就是了

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 回答