[Shell]Comparer le contenu de 2 fichiers
Résolu/Fermé
bezourox
Messages postés
729
Date d'inscription
vendredi 30 mars 2007
Statut
Membre
Dernière intervention
19 janvier 2013
-
10 nov. 2010 à 15:56
bezourox Messages postés 729 Date d'inscription vendredi 30 mars 2007 Statut Membre Dernière intervention 19 janvier 2013 - 1 déc. 2010 à 16:12
bezourox Messages postés 729 Date d'inscription vendredi 30 mars 2007 Statut Membre Dernière intervention 19 janvier 2013 - 1 déc. 2010 à 16:12
A voir également:
- [Shell]Comparer le contenu de 2 fichiers
- Explorateur de fichiers - Guide
- Wetransfer gratuit fichiers lourd - Guide
- Excel fusionner le contenu de 2 cellules - Guide
- Word a trouvé du contenu illisible - Guide
- Classic shell windows 11 - Télécharger - Personnalisation
7 réponses
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
10 nov. 2010 à 16:32
10 nov. 2010 à 16:32
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).
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
10 nov. 2010 à 16:34
10 nov. 2010 à 16:34
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 $
bezourox
Messages postés
729
Date d'inscription
vendredi 30 mars 2007
Statut
Membre
Dernière intervention
19 janvier 2013
143
10 nov. 2010 à 16:51
10 nov. 2010 à 16:51
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.
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
10 nov. 2010 à 16:58
10 nov. 2010 à 16:58
donc ça doit le faire.
Il y a un problème dans le script de zipe : il n'y a plus CCCCC
Il y a un problème dans le script de zipe : il n'y a plus CCCCC
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
10 nov. 2010 à 17:00
10 nov. 2010 à 17:00
Ben si :
???
$ cat A AAAAA BBBBB DDDDD FFFFF GGGGG JJJJJ OOOOO CCCCC EEEEE HHHHH IIIII KKKKK LLLLL MMMMM NNNNN
???
bezourox
Messages postés
729
Date d'inscription
vendredi 30 mars 2007
Statut
Membre
Dernière intervention
19 janvier 2013
143
10 nov. 2010 à 17:28
10 nov. 2010 à 17:28
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
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
10 nov. 2010 à 17:47
10 nov. 2010 à 17:47
Tu peux afficher le résultat de la commande :
cat -A fichier
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
15 nov. 2010 à 08:05
15 nov. 2010 à 08:05
test ma solution : tout mettre dans le même fichier, le trier et appliquer uniq.
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
15 nov. 2010 à 08:55
15 nov. 2010 à 08:55
Salut Char Snipeur,
C'est ce que fait ma syntaxe, mais ce qui est important c'est surtout qu'il faut rediriger le tout vers le fichier d'origine (fichier_A) et non comme le fait notre ami vers le fichier /home/test/fichier ;-((
D'où le doublon ;-(
C'est ce que fait ma syntaxe, mais ce qui est important c'est surtout qu'il faut rediriger le tout vers le fichier d'origine (fichier_A) et non comme le fait notre ami vers le fichier /home/test/fichier ;-((
D'où le doublon ;-(
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
15 nov. 2010 à 09:18
15 nov. 2010 à 09:18
ok. sort avec plusieurs paramètres, je ne suis pas certain de ce que ça fait, c'est pour ça.
Mais en effet, le problème doit venir de la redirection. Il faut utiliser ">" pour écraser l'ancien fichier et non ">>" qui écrit à la fin.
Mais en effet, le problème doit venir de la redirection. Il faut utiliser ">" pour écraser l'ancien fichier et non ">>" qui écrit à la fin.
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
15 nov. 2010 à 09:21
15 nov. 2010 à 09:21
Non il ne faut pas écraser d'après sa demande initiale, mais bien concaténer, mais il ne faut pas se tromper de fichier ;-\
Je cite : A la fin, le fichierA doit contenu ses propres lignes d'origine + toutes les lignes trouvées dans les FichiersB et FichierC qu'il ne possédait pas.
Je cite : A la fin, le fichierA doit contenu ses propres lignes d'origine + toutes les lignes trouvées dans les FichiersB et FichierC qu'il ne possédait pas.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
bezourox
Messages postés
729
Date d'inscription
vendredi 30 mars 2007
Statut
Membre
Dernière intervention
19 janvier 2013
143
18 nov. 2010 à 11:08
18 nov. 2010 à 11:08
sort -u fich_* > fichier
OK MERCI
OK MERCI
bezourox
Messages postés
729
Date d'inscription
vendredi 30 mars 2007
Statut
Membre
Dernière intervention
19 janvier 2013
143
29 nov. 2010 à 10:23
29 nov. 2010 à 10:23
Et si maintenant je veux la même fonction, mais sans classement alphabétique ?
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
29 nov. 2010 à 10:49
29 nov. 2010 à 10:49
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.
bezourox
Messages postés
729
Date d'inscription
vendredi 30 mars 2007
Statut
Membre
Dernière intervention
19 janvier 2013
143
1 déc. 2010 à 16:12
1 déc. 2010 à 16:12
Je ne comprends plus rien ...
La commande ne marche plus... elle ne m'élimine pas les doublons...
La commande ne marche plus... elle ne m'élimine pas les doublons...