Ist es möglich, mit grep nach Instanzen von zu suchen, aber Instanzen von John Smith
auszuschließen Mr John Smith
?
Ist es möglich, mit grep nach Instanzen von zu suchen, aber Instanzen von John Smith
auszuschließen Mr John Smith
?
Antworten:
Dies könnte mit einem regulären Ausdruck mit negativem Lookbehind gelöst werden (was experimentell unterstützt wird, grep
wie aus dem Kommentar von arrang hervorgeht):
$ grep -P '(?<!Mr )John Smith' file
Da die Unterstützung nur experimentell ist, möchten Sie möglicherweise perl
stattdessen 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'
.