Czy za pomocą grep można wyszukiwać wystąpienia, John Smithale je wykluczać Mr John Smith?
Czy za pomocą grep można wyszukiwać wystąpienia, John Smithale 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, grepjak wskazano w komentarzu z arrange):
$ grep -P '(?<!Mr )John Smith' file
Ponieważ obsługa jest tylko eksperymentalna, możesz perlzamiast 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'.