Ist es möglich, mit grep nach Instanzen von zu suchen, aber Instanzen von John Smithauszuschließen Mr John Smith?
Ist es möglich, mit grep nach Instanzen von zu suchen, aber Instanzen von John Smithauszuschließen Mr John Smith?
Antworten:
Dies könnte mit einem regulären Ausdruck mit negativem Lookbehind gelöst werden (was experimentell unterstützt wird, grepwie aus dem Kommentar von arrang hervorgeht):
$ grep -P '(?<!Mr )John Smith' file
Da die Unterstützung nur experimentell ist, möchten Sie möglicherweise perlstattdessen Folgendes verwenden :
$ perl -nle 'print if /(?<!Mr )John Smith/' file
Verwenden Sie ^ und $, um reguläre Ausdrücke zu verwenden
grep "^John Smith$"
^ ist Übereinstimmung von Anfang an $ ist Übereinstimmung von Ende.
Die Syntax hängt davon ab, wonach Sie in welcher Datei suchen.
Sie können reguläre Ausdrücke mit sed, grep, awk ... verwenden.
Beispiel
bodhi@Ubuntu:~ cat file
Mr John Smith
John Smith
John
Smith
bodhi@Ubuntu:~ grep "^John Smith$" file
John Smith
echo $string | grep -P '(?<!Mr )John Smith'.