Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/03/2011, 11h45   #1
Futur Membre du Club
 
Leonie Ahoo
Inscription : mars 2011
Messages : 8
Détails du profil
Informations personnelles :
Nom : Leonie Ahoo
Localisation : Côte d'Ivoire

Informations forums :
Inscription : mars 2011
Messages : 8
Points : 19
Points : 19
Envoyer un message via Yahoo à israellita Envoyer un message via Skype™ à israellita
Par défaut afficher les lignes d'un fichier qui ne sont pas dans lun autre fichier

Salut tout le monde

J'ai deux fichiers que je nomme A et B. A contient plus de 750 000 lignes et B plus 450 000 lignes. Je souhaite mettre dans un fichier C, uniquement toutes les lignes du fichier A qui ne sont pas dans le fichier B. J'ai au préalable utiliser les commandes "sort" et "uniq" pour trier et m'assurer de l'unicité des lignes
J'ai pensé à la commande join, mais je ne sais pas trop comment m'y prendre. Quelqu'un pourrais m'aider?
israellita est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 10/03/2011, 12h15   #2
Expert Confirmé
 
Inscription : janvier 2011
Messages : 970
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : janvier 2011
Messages : 970
Points : 2 871
Points : 2 871
Salut,

devrait le faire non ?
__________________
$ man woman
Il n'y a pas de page de manuel pour woman.
zipe31 est actuellement connecté   Envoyer un message privé Réponse avec citation 20
Vieux 10/03/2011, 12h41   #3
Expert Confirmé Sénior
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 070
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 070
Points : 4 153
Points : 4 153
Bonjour,

plutôt :
Code :
grep --invert-match --file=B A > C
les sort et uniq préalables ne sont peut-être pas nécessaires
...
?
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 30
Vieux 10/03/2011, 12h47   #4
Futur Membre du Club
 
Leonie Ahoo
Inscription : mars 2011
Messages : 8
Détails du profil
Informations personnelles :
Nom : Leonie Ahoo
Localisation : Côte d'Ivoire

Informations forums :
Inscription : mars 2011
Messages : 8
Points : 19
Points : 19
Envoyer un message via Yahoo à israellita Envoyer un message via Skype™ à israellita
Salut zipe31

Je n'obtient pas ce que je veux avec cette commande. Par exemple

A
60000124
60000141
60121224
60235894
60235987

B
60000124
60000141
60333333
60654789
Quand je tape ta commande j'obtient ce fichier

C
60121224
60235894
60235987
60333333
60654789

Or je veux uniquement les lignes de A qui ne sont pas dans B (celles de B qui ne sont pas dans A ne m'interessent pas)
israellita est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 10/03/2011, 12h53   #5
Expert Confirmé
 
Inscription : janvier 2011
Messages : 970
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : janvier 2011
Messages : 970
Points : 2 871
Points : 2 871
Oups je n'avais pas tenu compte du fait que B pouvait avoir aussi des lignes uniques

Code :
1
2
3
4
5
6
$ sort  A B | uniq -u > C
$ sort  A C | uniq -d
60121224
60235894
60235987
$
C'est mieux ?
__________________
$ man woman
Il n'y a pas de page de manuel pour woman.
zipe31 est actuellement connecté   Envoyer un message privé Réponse avec citation 20
Vieux 10/03/2011, 13h12   #6
Expert Confirmé
 
Inscription : janvier 2011
Messages : 970
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : janvier 2011
Messages : 970
Points : 2 871
Points : 2 871
Citation:
Envoyé par N_BaH Voir le message
Bonjour,

plutôt :
Code :
grep --invert-match --file=B A > C
les sort et uniq préalables ne sont peut-être pas nécessaires
...
?
Salut,

Pas mieux

Effectivement, pourquoi faire compliqué quand on peut faire simple
__________________
$ man woman
Il n'y a pas de page de manuel pour woman.
zipe31 est actuellement connecté   Envoyer un message privé Réponse avec citation 20
Vieux 10/03/2011, 13h21   #7
Futur Membre du Club
 
Leonie Ahoo
Inscription : mars 2011
Messages : 8
Détails du profil
Informations personnelles :
Nom : Leonie Ahoo
Localisation : Côte d'Ivoire

Informations forums :
Inscription : mars 2011
Messages : 8
Points : 19
Points : 19
Envoyer un message via Yahoo à israellita Envoyer un message via Skype™ à israellita
Salut N_Bah

Le fichier C que j'obtiens est vide . J'utilise pour tester, ces deux petit fichier A et B pour vérifier le résultat avant de l'appliquer sur mes gros fichiers.

A
60000124
60000141
60121224
60235894
60235987

B
60000124
60000141
60333333
60654789
israellita est déconnecté   Envoyer un message privé Réponse avec citation 11
Vieux 10/03/2011, 13h27   #8
Futur Membre du Club
 
Leonie Ahoo
Inscription : mars 2011
Messages : 8
Détails du profil
Informations personnelles :
Nom : Leonie Ahoo
Localisation : Côte d'Ivoire

Informations forums :
Inscription : mars 2011
Messages : 8
Points : 19
Points : 19
Envoyer un message via Yahoo à israellita Envoyer un message via Skype™ à israellita
Merci zipe31 ça marche bien! je vais essayer sur mes vrais fichiers.
israellita est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 10/03/2011, 13h30   #9
Expert Confirmé
 
Inscription : janvier 2011
Messages : 970
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : janvier 2011
Messages : 970
Points : 2 871
Points : 2 871
Pourtant...

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
$ ls
A  B

$ cat A
60000124
60000141
60121224
60235894
60235987

$ cat B
60000124
60000141
60333333
60654789

$ grep --invert-match --file=B A > C

$ ls
A  B  C

$ cat C
60121224
60235894
60235987

$
__________________
$ man woman
Il n'y a pas de page de manuel pour woman.
zipe31 est actuellement connecté   Envoyer un message privé Réponse avec citation 11
Vieux 10/03/2011, 13h32   #10
Expert Confirmé
 
Inscription : janvier 2011
Messages : 970
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : janvier 2011
Messages : 970
Points : 2 871
Points : 2 871
Citation:
Envoyé par israellita Voir le message
Merci zipe31 ça marche bien! je vais essayer sur mes vrais fichiers.
Pourtant la solution de N_BaH est bien plus simple et adaptée
__________________
$ man woman
Il n'y a pas de page de manuel pour woman.
zipe31 est actuellement connecté   Envoyer un message privé Réponse avec citation 20
Vieux 10/03/2011, 13h49   #11
Futur Membre du Club
 
Leonie Ahoo
Inscription : mars 2011
Messages : 8
Détails du profil
Informations personnelles :
Nom : Leonie Ahoo
Localisation : Côte d'Ivoire

Informations forums :
Inscription : mars 2011
Messages : 8
Points : 19
Points : 19
Envoyer un message via Yahoo à israellita Envoyer un message via Skype™ à israellita
J'utilise la distribution Suse, est ce une raisonpour que la commande de N_Bah ne marche pas?
israellita est déconnecté   Envoyer un message privé Réponse avec citation 11
Vieux 10/03/2011, 13h56   #12
Membre Expert
 
Homme Alexis
Intégrateur d'Exploitation
Inscription : février 2003
Messages : 876
Détails du profil
Informations personnelles :
Nom : Homme Alexis
Âge : 32
Localisation : France

Informations professionnelles :
Activité : Intégrateur d'Exploitation
Secteur : Biens de consommation

Informations forums :
Inscription : février 2003
Messages : 876
Points : 1 619
Points : 1 619
Envoyer un message via ICQ à Alek-C Envoyer un message via Skype™ à Alek-C
Probablement pas ! Tu as quelle version de grep ?
Alek-C est déconnecté   Envoyer un message privé Réponse avec citation 02
Vieux 10/03/2011, 14h08   #13
Futur Membre du Club
 
Leonie Ahoo
Inscription : mars 2011
Messages : 8
Détails du profil
Informations personnelles :
Nom : Leonie Ahoo
Localisation : Côte d'Ivoire

Informations forums :
Inscription : mars 2011
Messages : 8
Points : 19
Points : 19
Envoyer un message via Yahoo à israellita Envoyer un message via Skype™ à israellita
Citation:
Envoyé par Alek-C Voir le message
Probablement pas ! Tu as quelle version de grep ?
GNU grep 2.5.2
israellita est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 10/03/2011, 15h06   #14
Membre Expert
 
Homme Alexis
Intégrateur d'Exploitation
Inscription : février 2003
Messages : 876
Détails du profil
Informations personnelles :
Nom : Homme Alexis
Âge : 32
Localisation : France

Informations professionnelles :
Activité : Intégrateur d'Exploitation
Secteur : Biens de consommation

Informations forums :
Inscription : février 2003
Messages : 876
Points : 1 619
Points : 1 619
Envoyer un message via ICQ à Alek-C Envoyer un message via Skype™ à Alek-C
Ouais, c'est super récent

A tout hasard, essaye ça :
Mais je pense plutôt que c'est tes fichiers de tests qui ont un problème !
Alek-C est déconnecté   Envoyer un message privé Réponse avec citation 11
Vieux 11/03/2011, 11h16   #15
Futur Membre du Club
 
Leonie Ahoo
Inscription : mars 2011
Messages : 8
Détails du profil
Informations personnelles :
Nom : Leonie Ahoo
Localisation : Côte d'Ivoire

Informations forums :
Inscription : mars 2011
Messages : 8
Points : 19
Points : 19
Envoyer un message via Yahoo à israellita Envoyer un message via Skype™ à israellita
Citation:
Envoyé par Alek-C Voir le message
Ouais, c'est super récent

A tout hasard, essaye ça :
Mais je pense plutôt que c'est tes fichiers de tests qui ont un problème !
Ok, j'ai testé sur les vrais fichiers et j'ai l'erreur suivant
grep: Memory exhausted
Je suppose que la mémoire de grep n'est pas suffisante pour traiter mes fichiers!
israellita est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 11/03/2011, 11h28   #16
Membre Expert
 
Homme Alexis
Intégrateur d'Exploitation
Inscription : février 2003
Messages : 876
Détails du profil
Informations personnelles :
Nom : Homme Alexis
Âge : 32
Localisation : France

Informations professionnelles :
Activité : Intégrateur d'Exploitation
Secteur : Biens de consommation

Informations forums :
Inscription : février 2003
Messages : 876
Points : 1 619
Points : 1 619
Envoyer un message via ICQ à Alek-C Envoyer un message via Skype™ à Alek-C
sans doute
Alek-C est déconnecté   Envoyer un message privé Réponse avec citation 11
Vieux 11/03/2011, 11h39   #17
Futur Membre du Club
 
Leonie Ahoo
Inscription : mars 2011
Messages : 8
Détails du profil
Informations personnelles :
Nom : Leonie Ahoo
Localisation : Côte d'Ivoire

Informations forums :
Inscription : mars 2011
Messages : 8
Points : 19
Points : 19
Envoyer un message via Yahoo à israellita Envoyer un message via Skype™ à israellita
Je crois que je vais utiliser la commande de zipe31. Merci à tous pour votre aide!
israellita est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h33.


 
 
 
 
Partenaires

Hébergement Web