Est-il possible, en utilisant grep, de rechercher des instances de John Smith
mais d'exclure des instances de Mr John Smith
?
Est-il possible, en utilisant grep, de rechercher des instances de John Smith
mais d'exclure des instances de Mr John Smith
?
Réponses:
Cela pourrait être résolu en utilisant une expression régulière avec un lookbehind négatif (qui est supporté expérimentalement grep
comme le souligne le commentaire d'arranger):
$ grep -P '(?<!Mr )John Smith' file
Puisque le support est juste expérimental, vous voudrez peut-être utiliser à la perl
place:
$ perl -nle 'print if /(?<!Mr )John Smith/' file
Pour utiliser des expressions régulières, utilisez ^ et $
grep "^John Smith$"
^ correspond au début $ correspond à la fin.
La syntaxe variera en fonction de ce que vous recherchez dans quel fichier.
Vous pouvez utiliser des expressions régulières avec sed, grep, awk ....
Exemple
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'
.