2017-02-12 91 views
-1

我有下面的示例关键字输入文件Input.txt打印grep的关键字,如果grep的找到匹配

One 
Two 

我也有一个文件Text.txt进行搜索,例如:

Bla Bla 
Two more Bla 

我想如果grep找到匹配项,则打印grep关键字后跟一个匹配项。

所需的输出:

Two: 
======== 
Two more Bla 
######## 
+1

前缀代码/数据有四个空格。请看[编辑帮助](http://stackoverflow.com/editing-help)。 – Cyrus

+2

如果您不需要“标题”,请使用'grep -Ff Input.txt Text.txt' –

回答

0

使用awk,你可以做这样的事情:

$ awk 'NR==FNR{a[FNR]=$0;next}{for(i in a){if($0~a[i])print a[i]":\n========\n"$0}}' input.txt test.txt 
Two: 
======== 
Two more Bla 

在一个更可读的格式将是:

awk 'NR == FNR { 
     a[FNR] = $0 
     next 
    } 
    { 
     for(i in a) { 
      if ($0 ~ a[i]) { 
       print a[i] ":\n========\n" $0 
      } 
     } 
    }' input.txt test.txt