Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 来自管道内容的grep文件内容_Bash_Grep - Fatal编程技术网

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

Bash 来自管道内容的grep文件内容,bash,grep,Bash,Grep,我的虚拟文件看起来像这样 cat dummy_file Tom Jerry COMMAND | Tom Cat Jerry Mouse Spike Dog 我的管道内容看起来像这样 cat dummy_file Tom Jerry COMMAND | Tom Cat Jerry Mouse Spike Dog 我只想grep那些在dummy\u文件中的管道线路 我可以通过创建中间文件来实现这一点 CO

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

cat dummy_file 
    Tom
    Jerry
COMMAND | 
    Tom Cat
    Jerry Mouse
    Spike Dog
我的管道内容看起来像这样

cat dummy_file 
    Tom
    Jerry
COMMAND | 
    Tom Cat
    Jerry Mouse
    Spike Dog
我只想
grep
那些在
dummy\u文件中的管道线路

我可以通过创建中间文件来实现这一点

COMMAND > intermediate_file  
grep -w -F -f dummy_file intermediate file 
    Tom Cat 
    Jerry Mouse
我如何在不创建中间文件和仅对管道内容进行grep’s piped content的情况下实现这一点?
尝试了这个,但不起作用:

COMMAND | 
    xargs -I {} grep -w -F -f dummy_file -- NO RESULT
或者这个:

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

您可以使用
join
命令;)


join--nonocheck order-j1
grep
接受stdin的输入。照办

COMMAND | grep -w -F -f dummy_file 

您可以通过管道输出命令并调用grep:command | grep“regex”,例如:ps aux | greproot@Giudude谢谢虽然这会更困难。@Giodude,你能把这个作为一个答案吗?我会把它排除在外。这只是巧合,因为
join
在指定的列上进行连接,虽然特定的数据集确实在第1列中有所需的信息,但一般来说,数据可能在查找第1列、第2列、第15列或。。。而且,
join
真的不能解决这个问题。@JonathanLeffler这就是为什么我们需要一个完整的数据集来提出一个最佳的解决方案。否则我会提出一个替代方案。。。它仍然可以使用,即使这意味着进行一些调整(或完全改变解决方案)。