script Unix de formatage de fichier HTML - Shell/Batch - Programmation
MarshPosté le 05-05-2009 à 14:07:08
Bonjour tout le monde !
Alors voila je suis en train de pencher sur un petit script shell pour automatiser le formatage de mes fichiers... En gros je reçois régulièrement beaucoup de fichier que je dois traiter.
Après réception je change le format des Line Breaks (passage au format unix) et j'ajoute "<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">" au début de mes fichiers pour qu'il soit correctement traiter dans mon logiciel (je fait de la traduction !) :
# convert to unix line breaks perl -pe 's/\r\n|\n|\r/\n/g' "$file" > "$file"_temp mv -f "$file"_temp "$file"
# add encoding tag if not present if ! head -n 1 "$file" | grep -qi "UTF-8"; then echo '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <!-- Inserted by toto -->' > "$file"_temp cat "$file" >> "$file"_temp mv -f "$file"_temp "$file" fi
Aujourd'hui je cherche une solution pour convertir les caractères spéciaux en HTML entities (uniquement dans les partie textes de mes pages). Ensuite il me faudra faire l'inverse et supprimer ces HTML entities...
Franchement je ne sais pas comment faire, quelqu'un aurait une idée ? Merci d'avance, Grego
Message édité par nipoutch le 05-05-2009 à 14:15:26
petite remarque au passage : utiliser perl pour convertir des fins de lignes, c'est un peu sortir l'artillerie lourde pour tuer une mouche. Jette éventuellement un coup d'oeil à d2u.
Marsh Posté le 05-05-2009 à 14:07:08
Bonjour tout le monde !
Alors voila je suis en train de pencher sur un petit script shell pour automatiser le formatage de mes fichiers...
En gros je reçois régulièrement beaucoup de fichier que je dois traiter.
Après réception je change le format des Line Breaks (passage au format unix) et j'ajoute "<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">" au début de mes fichiers pour qu'il soit correctement traiter dans mon logiciel (je fait de la traduction !) :
Voila donc le script :
# find relevant files
find . \( \
-iname "*.html" -o \
-iname "*.htm" -o \
-iname "*.inc" -o \
-iname "*.xml" -o \
-iname "*.js" -o \
-iname "*.css" -o \
-iname "*.txt" -o \
-iname "*.php" -o \
-iname "*.plist" -o \
! -name "*.*" \) -type f -print0 | while read -d $'\0' file; do
echo "$file"
# convert to unix line breaks
perl -pe 's/\r\n|\n|\r/\n/g' "$file" > "$file"_temp
mv -f "$file"_temp "$file"
# add encoding tag if not present
if ! head -n 1 "$file" | grep -qi "UTF-8"; then
echo '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <!-- Inserted by toto -->' > "$file"_temp
cat "$file" >> "$file"_temp
mv -f "$file"_temp "$file"
fi
Aujourd'hui je cherche une solution pour convertir les caractères spéciaux en HTML entities (uniquement dans les partie textes de mes pages).
Ensuite il me faudra faire l'inverse et supprimer ces HTML entities...
Franchement je ne sais pas comment faire, quelqu'un aurait une idée ?
Merci d'avance, Grego
Message édité par nipoutch le 05-05-2009 à 14:15:26