|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |||
|
Invité de passage
![]() Inscription : juillet 2007 Messages : 4 ![]() |
Bonjour,
Soit le fichier essai.php : Citation:
Citation:
Citation:
Je pense que le problème vient du saut de ligne, mais je n'arrive pas à trouver la solution. Le but est de faire une modification de fichiers .php en masse. Merci d'avance. |
|||
|
|
00
|
|
|
#2 | |||
|
Membre expérimenté
![]() Inscription : mars 2007 Messages : 469 ![]() |
Citation:
Remplace tout enregistrement commençant ( ^ ) par blabla suivi de n'importe quel(s) caractère(s) jusqu'à la fin de l'enreg. ( cf expressions régulières ) par blabla ( & ) suivi de NewLine et Toto Code :
__________________
Loi de Murphy: La Théorie c'est quand ça ne marche pas mais que l'on sait pourquoi. La Pratique c'est quand ça marche mais qu'on ne sait pas pourquoi. Quand la théorie rejoint la pratique ça ne marche pas et on ne sait pas pourquoi. |
|||
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : juillet 2007 Messages : 4 ![]() |
Cela ne fonctionne pas.
Je précise les données du problème : blabla désigne du code html qui varie d'un fichier à l'autre ; seule la fin du code est commune à tous les fichiers. Reformulation de la question : comment insérer une ligne de code - par exemple <?include("toto.php");?> - à la ligne précédent le premier </div> d'un fichier (et seulement le premier) ? |
|
|
00
|
|
|
#4 | ||||
|
Membre Expert
![]() Inscription : mars 2002 Messages : 945 ![]() |
Code foo.sed :
Exemple : Code :
|
||||
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : juillet 2007 Messages : 4 ![]() |
Tout à fait, ça a fonctionné.
Merci beaucoup, cela m'a évité un travail long et fastidieux. Pourriez-vous me préciser la signification de ou me donner un lien vers une ressource en la matière ? |
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() Inscription : mars 2002 Messages : 945 ![]() |
:a sert à définir un label (que je nomme "a").
n sert à passer à la ligne suivante (en affichant la ligne courante) ba sert à faire un saut (un goto) vers le label a. Bref, le but est de traiter tout le reste du fichier sans faire de traitement dessus. Cela évite d'insérer la ligne avant chaque </div>. Pour la ressource, le mieux est de lire man sed et info sed. |
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : juillet 2007 Messages : 4 ![]() |
Merci.
|
|
|
00
|
|
|
#8 |
|
Membre émérite
![]() Inscription : mai 2004 Messages : 709 ![]() |
Alternative:
Code :
sed '0,/^<\/div>/ s/^.*$/<?include("toto.php"); ?>\n&/' fichier
__________________
:q :q! :wq :w :w! :wq! :quit :quit! :help help helpquit quit quithelp :quitplease :quitnow :leave :shit ^X^C ^C ^D ^Z ^Q QUITDAMMIT Jabber: ripat at im.apinc.org |
|
|
00
|
|
|
#9 |
|
Membre Expert
![]() Inscription : mars 2002 Messages : 945 ![]() |
... ce qui ne marche pas (testé avec 2 Sed différents, dont celui de Gnu). Tu as essayé sur l'exemple que j'ai donné ?
Ton code ajoute le include devant toutes les lignes, jusqu'à ce qu'on trouve le </div>. Il ne veut l'insérer qu'une seule fois. Remarque en passant : pour les adresses, la première ligne est 1. Certains Sed refusent l'adresse 0. |
|
|
00
|
|
|
#10 |
|
Membre émérite
![]() Inscription : mai 2004 Messages : 709 ![]() |
Effectivement, manque le masque de </div> dans la substitution.
Code :
< sed '0,/^<\/div>/ s/^<\/div>.*$/<?include("toto.php"); ?>\n&/' fichier
__________________
:q :q! :wq :w :w! :wq! :quit :quit! :help help helpquit quit quithelp :quitplease :quitnow :leave :shit ^X^C ^C ^D ^Z ^Q QUITDAMMIT Jabber: ripat at im.apinc.org |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com