Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 02/02/2010, 11h21   #1
Membre habitué
 
Inscription : mai 2007
Messages : 138
Détails du profil
Informations personnelles :
Âge : 59

Informations forums :
Inscription : mai 2007
Messages : 138
Points : 108
Points : 108
Par défaut diff sur deux fichiers encodés latin1 et UTF-8

Bonjour,

je dois changer l'encoding sur de nombreux fichiers.

J'utilise iconv pour faire le travail

Code :
-iconv -f latin1 -t UTF-8 <nom du fichier>
Les fichiers sont lus d'un SVN puis commités à nouveau dans le svn.

Pour vérifier que tout s'est bien passé je passe la commande svn diff sur tous les fichiers modifiés.

La commande svn diff me permet de savoir ce qui a été supprimé et ajouté en parsant la sortie de svn diff, je créé deux fichiers avant.txt et apres.txt. Ces deux fichiers ne contiennent que les lignes qui ont changés.

La dernière étape qui me reste a faire c'est de vérifier qu'il n'y a pas de changement entre avant et après.

Là je sens que tout le monde sursaute

Il y a bien sur une différence binaire car le fichier avant.txt est encodé en latin1 et le fichier après est encodé en UTF-8

Code :
1
2
3
4
5
moi@moi-laptop:~/6.2$ file -i avant.txt 
avant.txt: text/x-java; charset=iso-8859-1
moi@moi-laptop:~/6.2$ file -i apres.txt 
apres.txt: text/x-java; charset=utf-8
moi@moi-laptop:~/6.2$
Par contre en affichage il ne doit pas y en avoir. Un é (en latin1) ou en UTF-8 doit s'afficher comme un é.

vimdiff me permet d'avoir un affichage car vim tient compte de l'encodage et il présente bien les deux fichiers sans aucune différence.

Mon problème c'est que je voudrais scripter vi ou vim ou tout autre chose (script shell) qui me permette de détecter que au niveau affichage il n'y a aucune différence.

Je ne vois pas par quel bout attaquer le problème ?
noooop est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2010, 13h51   #2
Membre confirmé
 
Avatar de exodev
 
Inscription : septembre 2009
Messages : 201
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : septembre 2009
Messages : 201
Points : 292
Points : 292
Hello,

Une première solution pourrait être de reparser le fichier UTF-8 en latin1 et vérifier que le fichier d'origine est identique à celui parsé 2 fois.
exodev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2010, 14h14   #3
Membre habitué
 
Inscription : mai 2007
Messages : 138
Détails du profil
Informations personnelles :
Âge : 59

Informations forums :
Inscription : mai 2007
Messages : 138
Points : 108
Points : 108
oui effectivement ca peut être une solution... merci
noooop est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 01h18.


 
 
 
 
Partenaires

Hébergement Web