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

Print Friendly, PDF & Email

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
Découvrez  [Perl] : le web server en quelques lignes