来自管道内容的grep文件内容

时间:2013-11-04 20:35:03

标签: bash grep

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

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

如何在不创建中间文件的情况下实现此目的,并且只需要管理内容文件? 试过这个,但它不起作用:

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

或者这个:

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

2 个答案:

答案 0 :(得分:2)

grep接受来自stdin的输入。只是做

COMMAND | grep -w -F -f dummy_file 

答案 1 :(得分: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