¿Es posible, utilizando grep, buscar instancias John Smithpero excluir instancias de Mr John Smith?
¿Es posible, utilizando grep, buscar instancias John Smithpero excluir instancias de Mr John Smith?
Respuestas:
Esto podría resolverse utilizando una expresión regular con mirada hacia atrás negativa (que se admite experimentalmente grepcomo se señala en el comentario del arreglo):
$ grep -P '(?<!Mr )John Smith' file
Dado que el soporte es solo experimental, es posible que desee utilizar perlen su lugar:
$ perl -nle 'print if /(?<!Mr )John Smith/' file
Para usar expresiones regulares, use ^ y $
grep "^John Smith$"
^ es coincidencia desde el principio $ es coincidencia desde el final.
La sintaxis variará según lo que esté buscando en qué archivo.
Puede usar expresiones regulares con sed, grep, awk ...
Ejemplo
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'.