Go Back   Les systèmes UNIX et Linux Forums > Top Forums > De programmation et de script Shell
.
Google Site



De programmation et de script Shell Posez vos questions à propos de KSH, CSH, SH, BASH, PERL, PHP, SED, awk et d'autres scripts shell et les langages de script shell ici.

Closed Thread
English Japanese Spanish French German Portuguese Italian Powered by Powered by Google
 
Thread Tools Recherche sur ce Thread Rate Thread Modes d'affichage
  #1 (permalink)  
Old 08-07-2005
Registered User
 

Join Date: Aug 2005
Messages: 2
Question Utilisation de commande JOIN

Salutations,
Je tente d'utiliser la commande à joindre un fichier à partir de 2 fichiers séparés par des virgules, triés. Ex.:
PHOTO 1:
jane, dow
joe, coup


PHOTO 2:
jane, dow, 50,50,20
joe, coup, 29,53,25
spike, lee, 50,91,05

Je veux que le fichier résultant à reconds en FILE 2 où la personne existe dans le fichier 1. ex:

joe, coup, 29,53,25
jane, dow, 50,50,20

J'ai essayé d'utiliser join-t, j1-1-j1 2-j2 1-j2 2-o "2,1 2,2 2,3 2,4 2,5" File1 PHOTO 2 mais il semble me donner seulement le premier enregistrement matched (joe, coup, 29,53,25). Je pense que le nombre d'enregistrements dans le fichier d'être le même que celui du fichier 1.

Toute aide sera la bienvenue pour résoudre mon problème.
Merci,
Marcel Sammut

Dernière édition par Supial; au 08.07.2005 07:19 PM..
Liens Sponsorisés
  #2 (permalink)  
Old 08-07-2005
Registered User
 

Date d'inscription: juillet 2005
Posts: 33
how about:

Code:
#!/bin/sh
while read line
do
    grep "$line" /path/to/file2 >> file3
done < /path/to/file1

  #3 (permalink)  
Old 08-07-2005
Ygor's Avatar
Ygor Ygor is online now Forum Staff  
Modérateur
 

Join Date: Oct 2003
Lieu: -31.96,115.84
Posts: 1,431
Essayez ...
Code:
fgrep -f file1 file2

  #4 (permalink)  
Old 08-08-2005
aigles's Avatar
Aigles aigles is offline Forum Advisor  
Registered User
 

Date d'inscription: avril 2004
Lieu: Bordeaux, France
Posts: 1434
Trhe Avec ces deux solutions, un trop grand nombre de dossiers sélectionnés mai.
Par exemple, l'enregistrement suivant dans file2 seront sélectionnés:

big-joe, coup, 29,53,25

Un peu de modification de la Hadarot code:


Code:
#!/bin/sh
while read line
do
    grep "^$line," /path/to/file2 >> file3
done < /path/to/file1

Une autre solution avec awk:


Code:
awk '
BEGIN {
   FS = ",";
   while (getline < ARGV[1])
      persons[$0]++;
   ARGV[1]="";
} 
{
   person = $1 "," $2;
   if (person in persons) print;
} ' /path/to/file1 /path/to/file2


Jean-Pierre.
  #5 (permalink)  
Old 08-09-2005
Registered User
 

Join Date: Aug 2005
Messages: 2
Talking

Merci pour tous ceux qui ont répondu.

J'ai compris comment utiliser la commande joindre à cette tâche. En fait rejoindre ne fonctionne que sur une colonne clé. Donc, je n'avais pour concaténer le "prénom" avec le "nom" (c'est-à-dire: joe | coup, 29,53,25 - où i pipe utilisée pour séparer les deux clés).

Avec l'utilisation des commandes couper et coller, j'ai réussi à obtenir ce que je voulais.

J'ai essayé les suggestions émis, toutefois, ma demande est un peu plus compliquée que mes fichiers d'exemple.

À la vôtre,
Marcel
Liens Sponsorisés
Closed Thread

Bookmarks

Thread Tools Recherche sur ce Thread
Recherche sur ce Thread:

Recherche avancée
Modes d'affichage Rate this thread
Rate this thread:

Règles de messages
Tu mai pas de nouvelles discussions: nonoui
Tu mai pas envoyer des réponses:
Tu mai pas envoyer des pièces jointes
Tu mai pas modifier vos messages

BB code est Sur
Smilies sont Sur
[IMG] code est Sur
Le code HTML est Hors tension
Trackbacks sont Sur
Pingbacks sont Sur
Refbacks sont Hors tension


Plus d'UNIX et Linux Forum Sujets Vous trouverez peut-être utile
Fil Thread Starter Forum Réponses Last Post
join (pls help rejoindre sur commande) summer_cherry De programmation et de script Shell 1 12-31-2007 05:19 AM
Rejoignez Command Aide jerome Sukumar De programmation et de script Shell 0 01-25-2007 03:08 AM
joindre à la commande Penfold De programmation et de script Shell 22 02-22-2005 08:37 AM
Rejoignez commande unisam UNIX pour les nuls Questions et réponses 4 07-28-2004 07:59 AM



Toutes les heures sont au format GMT -4. Le temps est maintenant 02:58 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traductions Langue Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX et Linux Forums Copyright © 1993-2010. Tous droits Reserved.Ad Gestion par RedTyger

Content Relevant URLs par vBSEO 3.2.0