je voulais éviter de mettre en branle un monstre comme Perl
Pour la machine, c'est effectivement plus lourd (mais si tu n'as pas un 486 avec 8 Mo de mémoire ou un matériel embarqué, ça ne devrait pas être bloquant), mais pour toi, pas nécessairement : perl -p0777e 's/toto\ntiti/tata/g' fichier
Voire éventuellement plus intéressant, sauf si tu es sûr que toto et titi sont tout le temps séparés par une fin de ligne : perl -p0777e 's/toto\s+titi/tata/gs' fichier
Ainsi,
tyty toto titi tete
tete tutu toto
tititoto titi tyty
devient :
tyty tata tete
tete tutu tatatata tyty
Tiré de man perlrun :
-p indique à Perl de considérer votre programme comme entouré par [une] boucle, qui le fait itérer sur les noms de fichiers passés en arguments, un peu à la manière de sed.
-0[digits] indique le séparateur d'enregistrement en entrée ($/) en notation octale. [...] La valeur 0777, indique à Perl d'avaler les fichiers en entier car il n'y a pas de caractère avec cette valeur octale.
Tiré de man perlop :
s/MOTIF/REMPLACEMENT/egimosx
s Traitement de la chaîne comme étant une seule ligne.
(ainsi \s peut correspondre à \n).
« Le fascisme c’est la gangrène, à Washington comme en Russie. » — adapté de Renaud, Hexagone
[^] # Perl
Posté par Arthur Accroc . En réponse au message Motif multi-lignes avec 'sed'. Évalué à 4.
Pour la machine, c'est effectivement plus lourd (mais si tu n'as pas un 486 avec 8 Mo de mémoire ou un matériel embarqué, ça ne devrait pas être bloquant), mais pour toi, pas nécessairement :
perl -p0777e 's/toto\ntiti/tata/g' fichier
Voire éventuellement plus intéressant, sauf si tu es sûr que toto et titi sont tout le temps séparés par une fin de ligne :
perl -p0777e 's/toto\s+titi/tata/gs' fichier
Ainsi,
tyty toto titi tete
tete tutu toto
tititoto titi tyty
devient :
tyty tata tete
tete tutu tatatata tyty
Tiré de man perlrun :
-p indique à Perl de considérer votre programme comme entouré par [une] boucle, qui le fait itérer sur les noms de fichiers passés en arguments, un peu à la manière de sed.
-0[digits] indique le séparateur d'enregistrement en entrée ($/) en notation octale. [...] La valeur 0777, indique à Perl d'avaler les fichiers en entier car il n'y a pas de caractère avec cette valeur octale.
Tiré de man perlop :
s/MOTIF/REMPLACEMENT/egimosx
s Traitement de la chaîne comme étant une seule ligne.
(ainsi \s peut correspondre à \n).
« Le fascisme c’est la gangrène, à Washington comme en Russie. » — adapté de Renaud, Hexagone