User Tools

Site Tools


informatique:perl

Table of Contents

programmation

Perl

Perl est un langage de programmation interprété.

Tips

  • Afficher la significations des retours des codes d'erreurs (depuis un prompt *sh):
perl -le 'print $!+0, "\t", $!++ for 0..127'

Substitution multi-lignes

(à la différence de sed qui opère ligne par ligne)

Perl permet facilement de faire des recherches/substitutions sur plusieurs lignes dans un fichier ; par exemple pour supprimer toutes les lignes contenues entre les balises “—–BEGIN” et “—–END” dans le fichier FILE (IRL cela sert à supprimer les certificats dans les fichiers de configuration des Fortigate) :

perl -0777 -i -pe 's/[[:blank:]]*set [a-zA-Z0-9-_]* "-----BEGIN.*?-----END.*?\n//igs' FILE

Explications :

  • -0777 impose à perl de lire tout le fichier d'un seul coup
  • -e spécifie que le code perl est fourni en argument dans la ligne de commande
  • -p permet de boucler
  • -i permet d'altérer le fichier source directement (sans spécifier de fichier destination)

Pour l'expression régulière :

  • s/ permet d'introduire une substitution (rappel : m/ (ou juste /) pour juste rechercher)
  • .*? : quantificateur non gourmand (non-greedy), indique que .* doit matcher le plus court motif possible (par défaut c'est le plus long)
  • g permet d'appliquer autant de fois possible la substitution
  • s pour travailler en mode ligne unique (les sauts de ligne sont “transformés” en \n)
  • i rend le motif insensible à la casse
informatique/perl.txt · Last modified: 2017/09/26 14:33 by pteu