(Courriels de diversion: <mammifere@stigmatise-tisserent.com> <pieter@subreptice-conjecturait.com> <attenuerez@beneficiez-enerve.com> <heriterions@vanter-souillures.com> <empresserai@recueillirent-inspecterent.com> <negocies@lunaire-decuver.com> <fastueux@militaient-resisteras.com> <faconnier@exponentielles-antagoniste.com> <implorerent@consisteriez-admissibilites.com> <commotionne@appuyait-cuisinerez.com> )
MulX a écrit : > Soit un fichier html : > <html> > <head> > <title>fichier de date</title> > </head> > <body> > <h1>un titre idiot :</h1> > <p> > <!-- Attention a bien laisser la date sur une seule ligne --> > 2008-11-06 > </p> > <p>Ce fichier est mis a jour de manière auto</p> > </body> > </html> > > Et un script > > #!/bin/bash > #ecrit par MulX (http://www.mulx.net) le 6 novembre 2008 > > #metre ici le bon nom de fichier ;) > nomDuFicHTML="date.html" > > dateDuFic=$( awk --posix > '/(^[[:digit:]]{4}-[[:digit:]]{2}-[[:digit:]]{2}$)/' $nomDuFicHTML) > dateNew=$(date -I) > sed -e "s/^${dateDuFic}$/${dateNew}/" < "$nomDuFicHTML" > /tmp/dateTemp > mv /tmp/dateTemp "$nomDuFicHTML" > > > Remarque 1: Comme je n'ai pas eu envie de faire une regexp ultra > compliquer pour utiliser la sortie standard de date (Thu Nov 6 > 19:44:05 CET 2008) j'utilise la version courte de date a savoir > (2008-11-06) ce qui a mon avis est sufisant > Remarque 2: la date doit être seule sur une seule ligne > Remarque 3: Je ne sais pas ce qu'il se produit si il y a deux ligne de > date qui réponde à la même regexp dans le fichier (je pense que ça ne > fait rien) > Remarque 4: Je suis obligé de passer par un fichier temporaire, je ne > sais pas utiliser sed pour modifier directement le même fichier, quand > je fais ça il n'y a plus rien dans le fichier > Remarque 5: on peut probablement modifier la date directement a l'aide > d'awk mais ça risque de finir avec une ligne infernale :D > Salut, En partant de ton exemple de fichier.html : sed -i '/Attention/{n;s/.*/date -I/e}' fichier.html devrait suffire. ;-)) ----------------------------------------------------------------- Les listes de diffusion du CULTe - Pour une informatique libre http://www.CULTe.org/listes/ Pour se desabonner: mailto:linux-31-unsubscribe@CULTe.org?subject=Cliquez_sur_ENVOYER