Czy za pomocą grep można wyszukiwać wystąpienia, John Smith
ale je wykluczać Mr John Smith
?
Czy za pomocą grep można wyszukiwać wystąpienia, John Smith
ale je wykluczać Mr John Smith
?
Odpowiedzi:
Można to rozwiązać za pomocą wyrażenia regularnego z negatywnym wyglądem (który jest eksperymentalnie obsługiwany, grep
jak wskazano w komentarzu z arrange):
$ grep -P '(?<!Mr )John Smith' file
Ponieważ obsługa jest tylko eksperymentalna, możesz perl
zamiast tego użyć :
$ perl -nle 'print if /(?<!Mr )John Smith/' file
Aby użyć wyrażeń regularnych, użyj ^ i $
grep "^John Smith$"
^ jest zgodne od początku $ jest zgodne od końca.
Składnia będzie się różnić w zależności od tego, czego szukasz w jakim pliku.
Możesz używać wyrażeń regularnych z sed, grep, awk ....
Przykład
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'
.