Il s'agit déjà d'un encapsulation par les apostrophes simples
's/REPERTOIRE/$1/gi'
en plus $1 c'est une variable obtenu par la capture faite par la regex de perl (dans son cas il n'y a aucune capture, donc ma question c'est d'où il sort $1 puisqu'il n'y a pas de capture dont $1 est vide
regarde cet exemple
lami20j@debserv:~$ echo -e 'Voici mon répertoire sur /home/lami20j\n Fin de REPERTOIRE'
Voici mon répertoire sur /home/lami20j
Fin de REPERTOIRE
lami20j@debserv:~$ echo -e 'Voici mon répertoire sur /home/lami20j\n Fin de REPERTOIRE' | perl -pe 's/r(?:e|é)pertoire/$1/gi'
Voici mon sur /home/lami20j
Fin de
comme $1 est vide, en fait je supprime tout simplement el mot répertoire et REPERTOIRE
(?: permet de grouper dans regex sans capture
et voici si je capture dans la regex ($1 n'est plus vide)
lami20j@debserv:~$ echo -e 'Voici mon répertoire sur /home/lami20j\n Fin de REPERTOIRE' | perl -pe 's/r(?:e|é)pertoire/TEST/gi'
Voici mon TEST sur /home/lami20j
Fin de TEST
lami20j@debserv:~$
et voici juste pour la capture (1er cas c'est correct, 2ème cas $1 est vide)
lami20j@debserv:~$ echo -e 'Voici mon répertoire sur /home/lami20j\n Fin de REPERTOIRE' | perl -ne '/(r(?:e|é)pertoire)/i; print "$1\n"'
répertoire
REPERTOIRE
lami20j@debserv:~$ echo -e 'Voici mon répertoire sur /home/lami20j\n Fin de REPERTOIRE' | perl -ne '/r(?:e|é)pertoire/i; print "$1\n"'
lami20j@debserv:~$
lami20j