Des codes sources perlConsultez toutes les FAQ
Nombre d'auteurs : 13, nombre de questions : 59, dernière mise à jour : 27 mai 2011
- Insérer une ligne dans un fichier, à une position donnée
- Insérer une ligne dans un fichier, avant chaque ligne correspondant à une regex
- Insérer une ligne dans un fichier, après chaque ligne correspondant à une regex
- Insérer une ligne dans un fichier, après la n-ième ligne correspondant à une regex
- Insérer une ligne dans un fichier en plusieurs positions
- Insérer une ligne dans un fichier, après certaines occurrences de lignes correspondant à une regex
Exemple illustratif pour l'insertion de "toto" à la ligne 4 du fichier text, avec backup du fichier d'origine en .bak.
perl -
i.bak -
lpe'
print
"toto"
if
$.==4
'
text
Exemple illustratif pour l'insertion de "toto" avant chaque ligne du fichier text correspondant à la regex /lorem ipsum/, avec backup du fichier d'origine en .bak.
perl -
i.bak -
lpe'
print
"toto"
if
/lorem
ipsum/
'
text
Exemple illustratif pour l'insertion de "toto" après chaque ligne du fichier text correspondant à la regex /lorem ipsum/, avec backup du fichier d'origine en .bak.
perl -
i.bak -
lne'
print
;
print
"toto"
if
/lorem
ipsum/
'
text
Exemple illustratif pour l'insertion de "toto" après la quatrième ligne du fichier text correspondant à la regex /lorem ipsum/, avec backup du fichier d'origine en .bak.
perl -
i.bak -
lne'
print
;
print
"toto"
if
/lorem
ipsum/
and
++$occurrence==4
'
text
Exemple illustratif pour l'insertion de "toto" aux première, troisième et quatrième lignes du fichier text, avec backup du fichier d'origine en .bak.
perl -
i.bak -
lpe'
print
"toto"
if
grep
{$_==$.}
(1,3,4)
'
text
Attention, les positions sont relatives aux anciennes positions des lignes. Puisqu'une insertion a déjà eu lieu à la première ligne, l'insertion effectuée à la troisième ligne se retrouve de fait en quatrième ligne, et ainsi de suite. Je n'ai pas trouvé de solution simple pour résoudre ce problème.
Exemple illustratif pour l'insertion de "toto" après les première, troisième et quatrième lignes du fichier text correspondant à la regex /lorem ipsum/, avec backup du fichier d'origine en .bak.
perl -
i.bak -
lne'
print
;
print
"toto"
if
/lorem
ipsum/
and
++$occurrence
and
grep
{$_==$occurrence}
(1,3,4)
'
text