You are not logged in.
Bonjour,
J'ai un gros soucis avec un script shell bash.
JE souhaite vérifier l'encodage d'un fichier texte appelé rclok.txt et ensuite inclure une condition de telle sorte que si l'encodage est en utf-8, alors il se créera dans le même répertoire un fichier rclok.u8, et sinon alors il faudra convertir le fichier en utf-8, puis créer le fichier rclok.u8.
Voici le début de mon script, mais cela ne fonctionne pas.
Pouvez-vous me venir en aide svp?
Merci beaucoup de votre aide !
#!/bin/bash
encoding=`file rclok.txt`
echo ${encoding}
if [[ $encoding == *UTF-8* ]]; then
cat rclok.txt > rclok.u8
fi
Offline
Hello,
Les globs du shell (* et ?) ne fonctionnent qu'avec les noms de fichier, et par simple expansion (donc ca ne peut pas marcher avec un test d'égalité)
Ce n'est pas très prudent de se fier à file pour déterminer l'encodage, mais si ça te convient, le plus simple est d'utiliser grep.
#!/bin/bash file rclock.txt |grep UTF-8 >/dev/null 2>&1 && cp rclok.txt rclok.u8 || recode latin1..utf8 <rclok.txt >rclok.u8
Offline