我的虚拟文件看起来像这样
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
如何在不创建中间文件的情况下实现此目的,并且只需要管理内容文件? 试过这个,但它不起作用:
COMMAND |
xargs -I {} grep -w -F -f dummy_file -- NO RESULT
或者这个:
COMMAND |
xargs -I {} grep {} -w -F -f dummy_file -- ALL LINES ARE PRINTED
答案 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
。