111 votes

Utilisation du signe de l'étoile dans grep

J'essaie de rechercher la sous-chaîne "abc" dans un fichier spécifique dans linux/bash

Donc, je le fais :

grep '*abc*' myFile

Il ne renvoie rien.

Mais si je le fais :

grep 'abc' myFile

Il renvoie les correspondances correctement.

Ce n'est pas un problème pour moi. Mais si je veux m'accrocher à une chaîne plus complexe, disons

*abc * def *

Comment l'accomplirais-je en utilisant Grep ?

39voto

smcameron Points 554

Le caractère point signifie correspondre à n'importe quel caractère, donc .* signifie zéro occurrence ou plus de n'importe quel caractère. Vous voulez probablement dire utiliser .* plutôt que seulement *.

11voto

Artem Russakovskii Points 7341

Utilisez grep -P - qui permet la prise en charge des expressions régulières de style Perl.

grep -P "abc.*def" myfile

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X