[Perl] : récupérer un pattern présent une ou plusieurs fois par ligne

Perl n’est pas forcément mon language préféré mais pour faire du oneline il est plutôt génial.

Aujourd’hui un truc tout simple une fois de plus. Récupérer un pattern par une regex mais en récupérant toutes les occurances. Cela sous entend que l’on récupère également les patterns même si ils sont présents plusieurs fois par ligne.

Voici le fichier de départ :

└─ $ ▶ cat file.txt 
vert gris
jaune
bleu
orange b
rouge blanc beige

Je cherche à récupérer les mots commençant par un b soit le pattern\bb\w+

perl -ne 'while(/\bb\w+/g){print "$&\n";}' file.txt

Donc :

  • -e : ligne de commande
  • -n : évite de faire un while, permet de faire une boucle
  •  while : pour chaque pattern
  • $& : récupère le pattern
  • print : on affiche

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s