utilisation de diff sous unix - Shell/Batch - Programmation
Marsh Posté le 27-06-2007 à 10:27:21
deck10 a écrit : je voudrai qu'il me retourne que les fichiers sont identiques. |
Ils ne le sont pas au sens de diff, si tu veux une horreur pareille il faut te faire un script helper qui va créer toutes les permuations possibles du second fichier et les differ une à une avec le premier fichier (amuse toi bien)
(et diff ne prend pas en compte "les numéros de lignes", il fait simplement du matching de sous-séquences en sommet-fond ligne à ligne)
Marsh Posté le 27-06-2007 à 10:38:23
ok.
Sinon, je viens de penser à un truc. Vu que je ne peux pas connaître l'ordre des mots, j'ai pensé à trier les 2 fichiers par ordre alphabétique et les comparer après.
Savez s'il existe une commande pour trier un fichier et le remettre en ordre alphabétique?
Marsh Posté le 27-06-2007 à 10:39:15
man sort
Marsh Posté le 27-06-2007 à 10:41:07
Si tu peux passer par des fichiers temporaires, tu peux essayer un truc dans le genre:
Code :
|
edit: over grilled
Marsh Posté le 27-06-2007 à 10:55:26
anapajari a écrit : Si tu peux passer par des fichiers temporaires, tu peux essayer un truc dans le genre:
edit: over grilled |
sort f2 > temp |
Je suis sûr qu'il y a un meilleur moyen de le faire sans fichiers temporaires, mais j'arrive pas à le trouver
Marsh Posté le 27-06-2007 à 11:22:13
Code :
|
Marsh Posté le 27-06-2007 à 11:27:49
anapajari a écrit :
|
J'ai parlé d'un meilleur moyen, pas d'une espèce d'imondice
Marsh Posté le 27-06-2007 à 11:29:48
mais avec ce code, tu n'as pas la différence entre les fichiers.
Pour ne pas avoir de fichier tmp, je fais sort f1 | sort > f1
Marsh Posté le 27-06-2007 à 11:38:51
masklinn a écrit : J'ai parlé d'un meilleur moyen, pas d'une espèce d'imondice |
rooh ça va je deconnais
deck10 a écrit : Pour ne pas avoir de fichier tmp, je fais sort f1 | sort > f1 |
ou alors man sort et
Code :
|
Marsh Posté le 27-06-2007 à 12:24:39
deck10 a écrit : Pour ne pas avoir de fichier tmp, je fais sort f1 | sort > f1 |
Si ça marche, c'est seulement par hasard. Essaie avec un fichier plus gros, et tu verra que dans certains cas tu te retrouvera avec un fichier f1 vide. On ne peut jamais écrire dans un fichier qu'on est en train de lire, sauf si la commande est faite spécialement pour ça (genre le flag -i de sed ou perl).
Marsh Posté le 27-06-2007 à 10:22:40
Bonjour,
pour comparer deux fichiers, j'utilise la commande diff mais je voudrai qu'elle ne prenne pas en compte le numero de ligne (si c'est possible).
Voici un exemple:
fic1 fic2
aaaaa aaaaa
bbbbb ccccc
ccccc ddddd
ddddd bbbbb
quand je fais diff fic1 fic2, je voudrai qu'il me retourne que les fichiers sont identiques.
Je n'ai trouvé comment faire. J'espere que c'est réalisable.
Merci.
deck10