È possibile, usando grep, cercare istanze di John Smith
ma escluderne istanze Mr John Smith
?
È possibile, usando grep, cercare istanze di John Smith
ma escluderne istanze Mr John Smith
?
Risposte:
Questo potrebbe essere risolto usando un'espressione regolare con lookbehind negativo (che è supportato sperimentalmente grep
come sottolineato dal commento di organizza):
$ grep -P '(?<!Mr )John Smith' file
Poiché il supporto è solo sperimentale, potresti voler utilizzare perl
invece:
$ perl -nle 'print if /(?<!Mr )John Smith/' file
Per usare espressioni regolari, usa ^ e $
grep "^John Smith$"
^ è la corrispondenza dall'inizio $ è la corrispondenza dalla fine.
La sintassi varia in base a ciò che si sta cercando in quale file.
Puoi usare espressioni regolari con sed, grep, awk ....
Esempio
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'
.