Linux bash liste lignes non présentes fichie2
Fermé
sbouli
Messages postés
200
Date d'inscription
jeudi 20 décembre 2007
Statut
Membre
Dernière intervention
14 août 2014
-
7 avril 2009 à 19:13
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 9 avril 2009 à 17:33
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 9 avril 2009 à 17:33
A voir également:
- Linux bash liste lignes non présentes fichie2
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Diskinternals linux reader - Télécharger - Stockage
- Linux mint 32 bits - Télécharger - Systèmes d'exploitation
- Liste code ascii - Guide
10 réponses
macartur95
Messages postés
165
Date d'inscription
samedi 28 mars 2009
Statut
Membre
Dernière intervention
4 mai 2009
23
7 avril 2009 à 19:19
7 avril 2009 à 19:19
Bonsoir,
diff fichier1 fichier2
diff fichier1 fichier2
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
7 avril 2009 à 19:30
7 avril 2009 à 19:30
Salut,
Edit : $(cat fich* | sort | uniq -d) => "$(sort fich* | uniq -d)"
[tmpfs]$ cat fich1 email1@ledomaine.com email2@ledomaine.com email3@ledomaine.com [tmpfs]$ cat fich2 email2@ledomaine.com [tmpfs]$ grep -v "$(sort fich* | uniq -d)" fich1 email1@ledomaine.com email3@ledomaine.com [tmpfs]$;-))
Edit : $(cat fich* | sort | uniq -d) => "$(sort fich* | uniq -d)"
sbouli
Messages postés
200
Date d'inscription
jeudi 20 décembre 2007
Statut
Membre
Dernière intervention
14 août 2014
2
9 avril 2009 à 11:27
9 avril 2009 à 11:27
Bonjour,
Je viens d'essayer la solution grep mais j'ai une erreur :
grep: email@supermegadomaine.fr: Aucun fichier ou dossier de ce type
....
répété pour pas mal d'email...
pour être sûr qu'on s'est bien compris, mon exemple ne contient que 3 lignes dans l'un et 1 dans l'autre fichier, en réalité j'ai plusieurs dizaine de millier de lignes par fichiers.
Stéphane
Je viens d'essayer la solution grep mais j'ai une erreur :
grep: email@supermegadomaine.fr: Aucun fichier ou dossier de ce type
....
répété pour pas mal d'email...
pour être sûr qu'on s'est bien compris, mon exemple ne contient que 3 lignes dans l'un et 1 dans l'autre fichier, en réalité j'ai plusieurs dizaine de millier de lignes par fichiers.
Stéphane
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
>
sbouli
Messages postés
200
Date d'inscription
jeudi 20 décembre 2007
Statut
Membre
Dernière intervention
14 août 2014
9 avril 2009 à 12:05
9 avril 2009 à 12:05
On sait bien compris oui, la preuve dans mon message précédent et les exemples marchent bien avec les 2 fichiers fournis ... ;-\
Quelle version de grep ? quel shell ? Quel système ?
Quelle version de grep ? quel shell ? Quel système ?
sbouli
Messages postés
200
Date d'inscription
jeudi 20 décembre 2007
Statut
Membre
Dernière intervention
14 août 2014
2
>
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
9 avril 2009 à 12:38
9 avril 2009 à 12:38
j'avais pas vu le edit :)
sbouli
Messages postés
200
Date d'inscription
jeudi 20 décembre 2007
Statut
Membre
Dernière intervention
14 août 2014
2
9 avril 2009 à 12:42
9 avril 2009 à 12:42
Ya comme un soucis ... :
root@toto:# cat test1
email1@ledomaine.com
email2@ledomaine.com
email3@ledomaine.com
root@toto:# cat test2
email2@ledomaine.com
root@toto:# grep -v "$(sort test* | uniq -d)" test1
root@toto:# $(cat test* | sort | uniq -d) => "$(sort test* | uniq -d)"
-bash: email2@ledomaine.com : commande introuvable
root@toto:#
au secours ....
Stéphane
root@toto:# cat test1
email1@ledomaine.com
email2@ledomaine.com
email3@ledomaine.com
root@toto:# cat test2
email2@ledomaine.com
root@toto:# grep -v "$(sort test* | uniq -d)" test1
root@toto:# $(cat test* | sort | uniq -d) => "$(sort test* | uniq -d)"
-bash: email2@ledomaine.com : commande introuvable
root@toto:#
au secours ....
Stéphane
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
9 avril 2009 à 12:46
9 avril 2009 à 12:46
jp@MDK:~/tmpfs ssh$ cat test1 email1@ledomaine.com email2@ledomaine.com email3@ledomaine.com jp@MDK:~/tmpfs ssh$ cat test2 email2@ledomaine.com jp@MDK:~/tmpfs ssh$ grep -v "$(sort test* | uniq -d)" test1 email1@ledomaine.com email3@ledomaine.com jp@MDK:~/tmpfs ssh$;-))
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
sbouli
Messages postés
200
Date d'inscription
jeudi 20 décembre 2007
Statut
Membre
Dernière intervention
14 août 2014
2
9 avril 2009 à 12:59
9 avril 2009 à 12:59
hahahaha énorme ....
donc systeme ubuntu hardy heron
shell ... sh ...??
grep --version GNU grep 2.5.3
ça répond a la demande ?
Stéphane
donc systeme ubuntu hardy heron
shell ... sh ...??
grep --version GNU grep 2.5.3
ça répond a la demande ?
Stéphane
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
9 avril 2009 à 13:11
9 avril 2009 à 13:11
Et ça marche toujours pas ?
sbouli
Messages postés
200
Date d'inscription
jeudi 20 décembre 2007
Statut
Membre
Dernière intervention
14 août 2014
2
>
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
9 avril 2009 à 13:24
9 avril 2009 à 13:24
ben non aucun changements ... :
# cat test1 email1@ledomaine.com email2@ledomaine.com email3@ledomaine.com # cat test2 email2@ledomaine.com # grep -v "$(sort test* | uniq -d)" test1 #
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
9 avril 2009 à 13:31
9 avril 2009 à 13:31
Tu peux exécuter la commande suivante et nous coller le résultat, s'il te plaît :
set -xv; grep -v "$(sort test* | uniq -d)" test1; set -Merci.
sbouli
Messages postés
200
Date d'inscription
jeudi 20 décembre 2007
Statut
Membre
Dernière intervention
14 août 2014
2
9 avril 2009 à 14:30
9 avril 2009 à 14:30
Désolé pour le delais j'étais parti manger :)
stéphane
# set -xv; grep -v "$(sort test* | uniq -d)" test1; set - sort test* | uniq -d ++ sort test1 test2 ++ uniq -d + grep -v ' email2@ledomaine.com' test1 + set - #
stéphane
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
9 avril 2009 à 15:05
9 avril 2009 à 15:05
Si tu tapes :
grep -v 'email2@ledomaine.com' test1Ca donne quoi ?
sbouli
Messages postés
200
Date d'inscription
jeudi 20 décembre 2007
Statut
Membre
Dernière intervention
14 août 2014
2
9 avril 2009 à 15:19
9 avril 2009 à 15:19
et voila :
c'est bien le retour à la ligne qui pioche ...
grep -v '
email2@ledomaine.com' test1
stéphane
# grep -v 'email2@ledomaine.com' test1 email1@ledomaine.com email3@ledomaine.com #
c'est bien le retour à la ligne qui pioche ...
grep -v '
email2@ledomaine.com' test1
stéphane
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
>
sbouli
Messages postés
200
Date d'inscription
jeudi 20 décembre 2007
Statut
Membre
Dernière intervention
14 août 2014
9 avril 2009 à 15:28
9 avril 2009 à 15:28
Effectivement, mais il sort d'où ce retour à la ligne ???
Décompose l'expression :
Décompose l'expression :
sort test* | uniq -dRenvoie quoi ?
sbouli
Messages postés
200
Date d'inscription
jeudi 20 décembre 2007
Statut
Membre
Dernière intervention
14 août 2014
2
>
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
9 avril 2009 à 16:03
9 avril 2009 à 16:03
et voila :
EDIT : si je sors les 2 lignes vierge en bas des fichiers j'ai bien :
stéphane
# sort test* | uniq -d email2@ledomaine.com #
EDIT : si je sors les 2 lignes vierge en bas des fichiers j'ai bien :
# cat test1 email1@ledomaine.com email2@ledomaine.com email3@ledomaine.com # cat test2 email2@ledomaine.com # grep -v "$(sort test* | uniq -d)" test1 email1@ledomaine.com email3@ledomaine.com #
stéphane
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
>
sbouli
Messages postés
200
Date d'inscription
jeudi 20 décembre 2007
Statut
Membre
Dernière intervention
14 août 2014
9 avril 2009 à 16:09
9 avril 2009 à 16:09
C'est bon j'ai compris ;-\
Vires les lignes vides à la fin de tes 2 fichiers test1 et test2 ;-(
Dans mon exemple les lignes vides n'existent pas, c'est juste pour aérer la lecture que je les ai mises...
Vires les lignes vides à la fin de tes 2 fichiers test1 et test2 ;-(
Dans mon exemple les lignes vides n'existent pas, c'est juste pour aérer la lecture que je les ai mises...
sbouli
Messages postés
200
Date d'inscription
jeudi 20 décembre 2007
Statut
Membre
Dernière intervention
14 août 2014
2
9 avril 2009 à 16:06
9 avril 2009 à 16:06
Cependant, c'est le serpent qui se mort la queue ... si je lance la commande sur 2 fichiers avec quelques milliers de lignes, j'ai :
# grep -v "$(sort fichier?.log | uniq -d)" fichier1.log
-bash: /bin/grep: Liste d'arguments trop longue
il doit pas aimer avec beaucoup de ligne dans fichier1.log et fichier2.log ....
Stéphane
# grep -v "$(sort fichier?.log | uniq -d)" fichier1.log
-bash: /bin/grep: Liste d'arguments trop longue
il doit pas aimer avec beaucoup de ligne dans fichier1.log et fichier2.log ....
Stéphane
sbouli
Messages postés
200
Date d'inscription
jeudi 20 décembre 2007
Statut
Membre
Dernière intervention
14 août 2014
2
9 avril 2009 à 16:34
9 avril 2009 à 16:34
UP
Cependant, c'est le serpent qui se mort la queue ... si je lance la commande sur 2 fichiers avec quelques milliers de lignes, j'ai :
# grep -v "$(sort fichier?.log | uniq -d)" fichier1.log
-bash: /bin/grep: Liste d'arguments trop longue
il doit pas aimer avec beaucoup de ligne dans fichier1.log et fichier2.log ....
Stéphane
Cependant, c'est le serpent qui se mort la queue ... si je lance la commande sur 2 fichiers avec quelques milliers de lignes, j'ai :
# grep -v "$(sort fichier?.log | uniq -d)" fichier1.log
-bash: /bin/grep: Liste d'arguments trop longue
il doit pas aimer avec beaucoup de ligne dans fichier1.log et fichier2.log ....
Stéphane
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
9 avril 2009 à 17:33
9 avril 2009 à 17:33
Voir dans la FAQ : Suppression impossible : liste d'arguments trop longue
9 avril 2009 à 11:29
Cependant, merci d'avoir pris un peu de votre temps pour moi.
Stéphane