[Perl] : passer une simple regex

Print Friendly, PDF & Email

Perl est super pratique pour fair en une ligne ce que d’autres mettraient plusieurs ligne à faire. En plus Perl se comprend relativement bien je le trouve assez intuitif.

Comment appliquer une regex en Perl et afficher directement le résultat ?

echo "12:30:58" | perl -nle '$_ =~ /(..):(..):(..)/ ; print "Heures:$1\nMinutes:$2\nSecondes:$3"'

Résultat :

Heures:12
Minutes:30
Secondes:58

Donc :

  • $_ : permet de récupérer l’entrée standard
  • =~ / / : permet d’appliquer une regex
  • () : parenthèses capturantes
  • $1 : première parenthèse capturante
Découvrez  [Perl] : récupérer un pattern présent une ou plusieurs fois par ligne