Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
Insertion texte dans plusieurs fichiers
Envoyé par: briiice

Bonjour,

je dois insérer 1 dizaine de lignes à la fin (juste avant le </body>) dans plusieurs fichiers d'un serveur web,

dois je faire un script ou existe t'il une commande avec des options qui ferait la meme chose ?

merci pour vos conseils :-)

Brice.

Poste le Thursday 30 August 2007 14:58:26
Répondre     Citer    
Re: Insertion texte dans plusieurs fichiers
Envoyé par: francoisp

là il faut faire une simple commande....enfin casse pied à taper mais simple à comprendre
# for i in *.htm ; do 
> sed -i "s/<\/body>//" $i 
> cat FICHIER_10_LIGNES >> $i
> echo "</body>" >> $i 
> echo "Fichier $i fait" 
> done
#

NE PAS TAPPER LES ">" de debut de lignes ils sont affichés par le shell !


Poste le Thursday 30 August 2007 18:18:27
Répondre     Citer    
Re: Insertion texte dans plusieurs fichiers
Envoyé par: tuxce

salut,
le
sed -i "s/<\/body>//" $i 
va juste effacer la ligne </body>.
ce qu'il y aura après cette ligne restera, du coup, le code ne sera plus cohérent.

un essai (peut etre pas le plus simple):
#!/bin/bash
ligne=$((`grep -n '</body>' $1 | cut -d: -f1` -1))
total_ligne=`wc -l $1 | cut -d' ' -f1`

cp $file /tmp/$$
head -n$ligne /tmp/$$ > $1
cat fichier_contenant_lignes_a_ajouter >> $1
tail -n$(($total_ligne - $ligne)) /tmp/$$ >> $1
./script le_fichier_a_traiter

Poste le Thursday 30 August 2007 18:36:23
Répondre     Citer    
Re: Insertion texte dans plusieurs fichiers
Envoyé par: AlSim

Version Perl si tu préfères :

open (F, "fichier.html");
@T=<F>;
close (F);
open(F, ">fichier.html");
foreach (@T) {
 if (/<\/body>/i) {print F "TEXTE\n"};
 print F;
}
close(F);

Et si tu veux par exemple traiter tous les fichiers .html sur / :

use File::Find;

sub wanted {
if (/.html$/)
 {
  open (F, "$_");
  @T=<F>;
  close (F);
  open(F, ">$_");
  foreach (@T) {
   if (/<\/body>/i) {print F "TEXTE\n"};
   print F;
  }
  close(F);
 }
}

find(\&wanted, "/");

[catwell.info]

Poste le Thursday 30 August 2007 21:02:06
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
Insertion texte dans plusieurs fichiers
Posez dans ce forum les questions qui ne trouvent pas place dans les autres...

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons