2014-02-05 5 views

Antwort

4

awk verwenden:

awk -v s='2' '/^foo:/{line=$0;next} $1==s{print line}' file 
foo: A 
foo: C 
+1

+1 aber du solltest niemals den Buchstaben 'l' als Variable verwenden, da er viel zu sehr wie die Zahl' 1' aussieht, in einigen Schriftarten völlig ununterscheidbar. –

+1

Ich musste das kopieren und einfügen, um sicher zu sein. –

+0

Berücksichtigen Sie gut genommen, geändert "l" zu "line" für Lesbarkeit Zweck. – anubhava

0

Diese Regex definitiv einige Optimierungen nutzen könnten, aber es sollte funktionieren:

foo: [A-Z](?=(?:(?!foo)[^2])*2) 

Dämon stration: http://regex101.com/r/cX8gM0

Verwandte Themen