Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1234 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Aide script modification HTML bash

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Aide script modification HTML bash

n°1382696
valfone
Posté le 26-10-2015 à 19:40:05  profilanswer
 

Bonjour à tous !  
Je dois écrire un script qui va chercher dans un répertoire passé en argument tous les fichiers html, puis remplacer tous les caractères accentués par leur code html (du genre : "é" par "à" )
 
J'ai essayé quelques trucs pour en arriver la, mais je suis bloqué sur le changement des caractères, au lieu de remplacer par le code, ça me remplace par le caractère accentué et son code...
 

Code :
  1. #!/bin/bash
  2. Rep=$1
  3. find $Rep/ -name "*.html" -type f -exec ls -l {} \;
  4. for i in $Rep/*.html
  5. do
  6. mv $i $i.old
  7. cat $i.old | sed -e 's/é/è"/g' > $i
  8. done


 
J'ai ce résultat : "éegrave;egrave;"egrave;
 
Le contenu de mon fichier d'origine est ééé
 
Et en plus, je n'arrive pas à modifier plusieurs caractères en même temps, je pourrai avoir un peu d'aide svp  :(


Message édité par valfone le 26-10-2015 à 21:01:40

---------------
ValFone
mood
Publicité
Posté le 26-10-2015 à 19:40:05  profilanswer
 

n°1382700
Misssardon​ik
prévisible a posteriori
Posté le 26-10-2015 à 21:54:28  profilanswer
 

- & est un métacaractère donc attention à bien l'échapper

 

- sed prend directement un fichier en argument donc pas besoin de faire un cat| avant


Message édité par Misssardonik le 26-10-2015 à 21:54:49

---------------
Que va-t-il se passer cette gelgamar ? vous le découvrirez janamont à 20h
n°1382732
valfone
Posté le 27-10-2015 à 12:26:10  profilanswer
 

J'ai trouvé ! :D
 
J'ai pris en compte tes remarques, elles m'ont aidé surtout avec le &.
J'ai ensuite cherché comment bien utiliser la commande sed -e que j'utilisais mal pour plusieurs caractères à changer. J'utilisais des | mais seulement les deux premiers caractères fonctionnaient.
 
Voila mon code :) (Je sais pas si il est optimal mais ça fonctionne c'est le principal !

Code :
  1. #!/bin/bash
  2. Rep=$1
  3. find $Rep/ -name "*.html" -type f -exec ls -l {} \;
  4. for i in $Rep/*.html
  5. do
  6. mv $i $i.old
  7. sed -e 's/é/\è/g ; s/é/\é/g ; s/ê/\ê/g ; s/à/\á/g ; s/â/\â/g' $i.old > $i
  8. done


 
Sur un fichier par exemple : é ê è à â
J'obtiens bien : è ê é á â

Message cité 1 fois
Message édité par valfone le 27-10-2015 à 12:27:21

---------------
ValFone
n°1382741
o'gure
Modérateur
Multi grognon de B_L
Posté le 27-10-2015 à 13:58:33  profilanswer
 

valfone a écrit :


Code :
  1. 's/é/\è/g ; s/é/\é/g




T'as un problème là.


---------------
Relax. Take a deep breath !
n°1382753
Profil sup​primé
Posté le 27-10-2015 à 20:12:31  answer
 

salut,
 
quel est l'intérêt du find ?
le mv ne sert à rien : l'option -i de sed permet de sauvegarder l'original en lui ajoutant l'extension en argument de l'option.

n°1382796
valfone
Posté le 28-10-2015 à 18:20:44  profilanswer
 

o'gure a écrit :


T'as un problème là.


 
Oui, j'ai juste fait une faute de frappe avec é pour le deuxième c'est è, désolé.
 
 
 
 
Le find me sert pour m'afficher quels sont les fichiers html présents dans le dossier. En soit, je suis d'accord il ne sert à rien mais c'est juste pour m'indiquer ;)
Donc il faut que je mette plutôt "sed -e -i ..." ?


Message édité par valfone le 28-10-2015 à 18:21:15

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Aide script modification HTML bash

 

Sujets relatifs
demarer le daemon ifplugd via un script.Script BASH pour suppression fichiers multiples (même nom) dans arbo ?
[Résolu] Bash : Récupérer la date de modification d'un fichierScript de sauvegarde raspbian
linux bash concatenation de variableAide pour ASTERISK sur Qnap
Avis sur un script d'analyse de logs[Help] Petit script tout bete pour faire une boucle
Plus de sujets relatifs à : Aide script modification HTML bash


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR