[Shell]Comparer le contenu de 2 fichiers
Résolu
bezourox
Messages postés
730
Date d'inscription
Statut
Membre
Dernière intervention
-
bezourox Messages postés 730 Date d'inscription Statut Membre Dernière intervention -
bezourox Messages postés 730 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- [Shell]Comparer le contenu de 2 fichiers
- Classic shell - Télécharger - Personnalisation
- Supercopier 2 - Télécharger - Gestion de fichiers
- Explorateur de fichiers - Guide
- Renommer des fichiers en masse - Guide
- Fichiers epub - Guide
7 réponses
Salut.
Tu ne nous dit pas quel environnement de script tu veux utiliser.
moins, je ferai (en bash) :
Ce n'est pas ton algorithme, mais le résultat sera à peu près le même.
Il faudrait pour nous aider, les contraintes que tu as et pourquoi tu veux faire ça (ton but final quoi).
Tu ne nous dit pas quel environnement de script tu veux utiliser.
moins, je ferai (en bash) :
cat fichierB fichierC>>fichierA sort fichierA|uniq>fichierA
Ce n'est pas ton algorithme, mais le résultat sera à peu près le même.
Il faudrait pour nous aider, les contraintes que tu as et pourquoi tu veux faire ça (ton but final quoi).
Salut,
$ cat A AAAAA BBBBB DDDDD FFFFF GGGGG JJJJJ OOOOO $ cat B AAAAA BBBBB CCCCC DDDDD FFFFF GGGGG HHHHH JJJJJ KKKKK OOOOO $ cat C AAAAA BBBBB DDDDD EEEEE FFFFF GGGGG IIIII JJJJJ LLLLL MMMMM NNNNN OOOOO $ sort A B C | uniq -u >> A $ cat A AAAAA BBBBB DDDDD FFFFF GGGGG JJJJJ OOOOO CCCCC EEEEE HHHHH IIIII KKKKK LLLLL MMMMM NNNNN $
OK merci pour vos réponses.
Je vais faire un test mais c'est exactement ce que je veux faire.
En bref sur différents sites j'ai un gestionnaire qui possède un fichier texte.
Il rajoute dans ce fichier les URL pour lesquelles il souhaite un accès (proxy) avec une URL par ligne.
Le but est que chaque site puisse mette à jour son fichier, le soir lance mon script de synchro, et que je me retrouve sur mon site principal avec la liste complète des URL pour lesquelles je dois ouvrir l'accès.
Voila le but final.
Je vais faire un test mais c'est exactement ce que je veux faire.
En bref sur différents sites j'ai un gestionnaire qui possède un fichier texte.
Il rajoute dans ce fichier les URL pour lesquelles il souhaite un accès (proxy) avec une URL par ligne.
Le but est que chaque site puisse mette à jour son fichier, le soir lance mon script de synchro, et que je me retrouve sur mon site principal avec la liste complète des URL pour lesquelles je dois ouvrir l'accès.
Voila le but final.
sort /home/test/fichier_A /home/test/fichier_B /home/test/fichier | uniq -u >> /home/test/fichier
Ce script ne marche pas tout à fait car je retrouve 2 fois une URL (la première de "fichier"
debian:/home/test# ls
fichier fichier_A fichier_B maj_fichier.sh
debian:/home/test# cat fichier_A
test.fr
test.com
debian:/home/test# cat fichier_B
coucou.fr
salut.gm
debian:/home/test# cat fichier
bonjour.fr
coucou.fr
debian:/home/test# ./maj_fichier.sh
debian:/home/test# cat fichier
bonjour.fr
coucou.fr
bonjour.fr
salut.gm
test.com
test.fr
Ce script ne marche pas tout à fait car je retrouve 2 fois une URL (la première de "fichier"
debian:/home/test# ls
fichier fichier_A fichier_B maj_fichier.sh
debian:/home/test# cat fichier_A
test.fr
test.com
debian:/home/test# cat fichier_B
coucou.fr
salut.gm
debian:/home/test# cat fichier
bonjour.fr
coucou.fr
debian:/home/test# ./maj_fichier.sh
debian:/home/test# cat fichier
bonjour.fr
coucou.fr
bonjour.fr
salut.gm
test.com
test.fr
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Et si maintenant je veux la même fonction, mais sans classement alphabétique ?
Alors là, c'est une autre pair de manche !
Depuis le début nous sommes partie sur le fait que le tri ne te gènait pas. Si maintenant il faut ne plus trier, ça change tout l'algorithme (ça le complexifie beaucoup)
à ce moment là, pour chaque ligne de B et C, il faut vérifier s'il y a la même dans A et l'ajouter à la fin si ce n'est pas le cas. Le plus dur là dedans c'est de comparer une ligne à chaque ligne.
Depuis le début nous sommes partie sur le fait que le tri ne te gènait pas. Si maintenant il faut ne plus trier, ça change tout l'algorithme (ça le complexifie beaucoup)
à ce moment là, pour chaque ligne de B et C, il faut vérifier s'il y a la même dans A et l'ajouter à la fin si ce n'est pas le cas. Le plus dur là dedans c'est de comparer une ligne à chaque ligne.