(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