2017-02-12 2 views
-1

Ich habe eine Eingabedatei Input.txt mit den folgenden Beispiel Schlüsselwörter finden:Drucken grep Schlüsselwort, wenn grep ein Spiel

One 
Two 

Ich habe auch eine Datei Text.txt zu suchen, wie:

Bla Bla 
Two more Bla 

Ich möchte grep Keyword gefolgt von einer Übereinstimmung, wenn der Grep eine Übereinstimmung findet.

Die gewünschte Ausgabe:

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

Präfix Code/Daten mit vier Leerstellen. Bitte werfen Sie einen Blick auf [editing-help] (http://stackoverflow.com/editing-help). – Cyrus

+2

Wenn Sie den "header" nicht benötigen, verwenden Sie 'grep -Ff Input.txt Text.txt' –

Antwort

0

Mit awk Sie so etwas tun könnte:

$ 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 

In einem besser lesbaren Format wäre es:

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