Commande if pour comparaison de fichiers
Résolu/Fermé
stephbret56
Messages postés
186
Date d'inscription
dimanche 27 janvier 2008
Statut
Membre
Dernière intervention
2 septembre 2011
-
5 sept. 2008 à 15:09
dubcek Messages postés 18758 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 24 décembre 2024 - 6 sept. 2008 à 10:52
dubcek Messages postés 18758 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 24 décembre 2024 - 6 sept. 2008 à 10:52
A voir également:
- Commande if pour comparaison de fichiers
- Invite de commande - Guide
- Commande terminal mac - Guide
- Explorateur de fichiers - Guide
- Wetransfer gratuit fichiers lourd - Guide
- Renommer plusieurs fichiers en même temps - Guide
9 réponses
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
5 sept. 2008 à 15:29
5 sept. 2008 à 15:29
Salut,
utilises plutôt la commande diff ou cmp
utilises plutôt la commande diff ou cmp
Bonjour
Je suppose que ce sont les contenus de fichier (et non leurs noms) que vous voulez comparer...
Si oui, if faut utiliser l'option -q de diff, ça répond 0 (TRUE) s'il y a une différence
if diff -q fichier1 fichier2
then
echo different files
else
echo identical files
fi
Manu
Je suppose que ce sont les contenus de fichier (et non leurs noms) que vous voulez comparer...
Si oui, if faut utiliser l'option -q de diff, ça répond 0 (TRUE) s'il y a une différence
if diff -q fichier1 fichier2
then
echo different files
else
echo identical files
fi
Manu
bonjour,
la commande diff fic1 fic2 liste les différences (si il y en a)
la commande cmp renvoie false dès que la comparaison échoue (les deux fichiers sont différents
reste plus que le if à contruire ...
la commande diff fic1 fic2 liste les différences (si il y en a)
la commande cmp renvoie false dès que la comparaison échoue (les deux fichiers sont différents
reste plus que le if à contruire ...
stephbret56
Messages postés
186
Date d'inscription
dimanche 27 janvier 2008
Statut
Membre
Dernière intervention
2 septembre 2011
6
5 sept. 2008 à 15:44
5 sept. 2008 à 15:44
Merci pour le réponse j'ai réussi à construire le if avec le diff je vous donnes la réponse
#!/bin/ksh
if diff /tmp/dif1 /tmp/dif2 1>/dev/null
then
echo "Le Fichier dif1 est identique au fichier dif2"
else
echo "Le Fichier dif1 n'est pas identique au fichier dif2"
fi
Merci encore de l'aide à bientot et bon week-en à tous
#!/bin/ksh
if diff /tmp/dif1 /tmp/dif2 1>/dev/null
then
echo "Le Fichier dif1 est identique au fichier dif2"
else
echo "Le Fichier dif1 n'est pas identique au fichier dif2"
fi
Merci encore de l'aide à bientot et bon week-en à tous
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
dubcek
Messages postés
18758
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
24 décembre 2024
5 623
5 sept. 2008 à 16:09
5 sept. 2008 à 16:09
hello
je commencerais par comparer la taille des fichiers. Si elle est différente, pas besoin de diff qui peut être long sur des gros fichiers.
je commencerais par comparer la taille des fichiers. Si elle est différente, pas besoin de diff qui peut être long sur des gros fichiers.
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
5 sept. 2008 à 17:53
5 sept. 2008 à 17:53
Salut,
en fait tu n'as pas besoin de if
en fait tu n'as pas besoin de if
lami20j@debian:~$ cat fic1 bla bla bla lami20j@debian:~$ cat fic2 bla bla bla lami20j@debian:~$ cat fic3 tra la la lami20j@debian:~$ diff -q fic1 fic2 lami20j@debian:~$ diff -q fic1 fic3 Les fichiers fic1 et fic3 sont différents. lami20j@debian:~$ diff -q fic1 fic2 && echo "les fichiers sont identiques" les fichiers sont identiques lami20j@debian:~$ diff -q fic1 fic3 && echo "les fichiers sont identiques" Les fichiers fic1 et fic3 sont différents. lami20j@debian:~$
dubcek
Messages postés
18758
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
24 décembre 2024
5 623
6 sept. 2008 à 09:32
6 sept. 2008 à 09:32
diff -q est une option diff Linux, je ne suis pas sûr qu'elle existe sur AIX
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
6 sept. 2008 à 09:51
6 sept. 2008 à 09:51
Salut,
alors il pourra faire comme ça ;-)
106485010510997108
alors il pourra faire comme ça ;-)
lami20j@debian:~$ cat fic1 bla bla bla lami20j@debian:~$ cat fic2 bla bla bla lami20j@debian:~$ cat fic3 tra la la lami20j@debian:~$ cat mydiff.sh #!/bin/sh test=$(diff $1 $2); if [ -z "$test" ];then echo "fichiers identiques" else echo "fichiers différents" fi lami20j@debian:~$ sh mydiff.sh fic1 fic2 fichiers identiques lami20j@debian:~$ sh mydiff.sh fic1 fic3 fichiers différents lami20j@debian:~$--
106485010510997108
dubcek
Messages postés
18758
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
24 décembre 2024
5 623
6 sept. 2008 à 10:16
6 sept. 2008 à 10:16
mais si les fichiers sont grands, on peut arrêter le diff à la première différence
diff f1 f2 | awk '/^</ {exit 1}'
diff f1 f2 | awk '/^</ {exit 1}'
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
>
dubcek
Messages postés
18758
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
24 décembre 2024
6 sept. 2008 à 10:19
6 sept. 2008 à 10:19
Ou utiliser bdiff ;-))
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
>
dubcek
Messages postés
18758
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
24 décembre 2024
6 sept. 2008 à 10:19
6 sept. 2008 à 10:19
Re,
je suis d'accord avec toi
c'est inutile de tester jusqu'au bout si une différence est trouvée
je suis d'accord avec toi
c'est inutile de tester jusqu'au bout si une différence est trouvée
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
>
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
6 sept. 2008 à 10:25
6 sept. 2008 à 10:25
Faignant ;-DDD
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
>
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
6 sept. 2008 à 10:33
6 sept. 2008 à 10:33
Ben, pour une fois ce n'est pas moi, c'est lui ;-DDD
en plus il parle en SMS diff f1 f2 | awk '/^</ {exit 1}' ;-DDDDD
en plus il parle en SMS diff f1 f2 | awk '/^</ {exit 1}' ;-DDDDD
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
6 sept. 2008 à 10:05
6 sept. 2008 à 10:05
Effectivement l'option "-q" n'est pas présente sur la commande "diff" des "AIX" (voir Commands reference - man diff)
Par contre la commande "cmp" est la même sur UNIX et GNU/Linux :
Par contre la commande "cmp" est la même sur UNIX et GNU/Linux :
[tmpfs]$ cat fic1 blablabla [tmpfs]$ cat fic2 blablabla [tmpfs]$ cat fic3 bla bla bla [tmpfs]$ cmp -s fic1 fic2 [tmpfs]$ echo $? 0 [tmpfs]$ cmp -s fic1 fic3 [tmpfs]$ echo $? 1 [tmpfs]$;-))