Shell - Parcours de fichiers imbriqués
Fermé
Dipsou
-
Modifié par Dipsou le 11/09/2012 à 11:49
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 - 11 sept. 2012 à 16:10
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 - 11 sept. 2012 à 16:10
A voir également:
- Shell - Parcours de fichiers imbriqués
- Wetransfer gratuit fichiers lourd - Guide
- Explorateur de fichiers - Guide
- Classic shell windows 11 - Télécharger - Personnalisation
- Renommer plusieurs fichiers en même temps - Guide
- Fichiers bin - Guide
6 réponses
dubcek
Messages postés
18755
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
14 novembre 2024
5 620
11 sept. 2012 à 12:13
11 sept. 2012 à 12:13
hello
$ awk 'BEGIN{FS=OFS=";"} NR==FNR {t[$1]=$0; next} {$3=t[$3]; print }' paramètres clients DUPONT;JACQUES;1;A;B;B DURAND;PIERRE;2;C;-;G MARTIN;JACQUES;3;B;D;E ANDRE;GILLES;2;C;-;G $
dubcek
Messages postés
18755
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
14 novembre 2024
5 620
11 sept. 2012 à 12:28
11 sept. 2012 à 12:28
montre le code, ça peut servir
jisisv
Messages postés
3645
Date d'inscription
dimanche 18 mars 2001
Statut
Modérateur
Dernière intervention
15 janvier 2017
934
Modifié par jisisv le 11/09/2012 à 16:30
Modifié par jisisv le 11/09/2012 à 16:30
La commande join est destinée à ce genre d'opération:
man join; info join
<edit> La ligne ANDRE;GILLES n'apparaît pas. Je cherche la solution </edit>
Il faut au minimum trier CLIENTS selon le champ commun:
sort -t ";" -k 3 CLIENTS > CLIENTS.sorted et travailler avec le fichier trié.
Gates gave ^H sold you the windows.
GNU gave us the whole house.(Alexandrin)
johand@osiris: ~/src/CCM/bash/join $ cat PARAMETRES 1;A;B;B 2;C;-;G 3;B;D;E johand@osiris: ~/src/CCM/bash/join $ cat CLIENTS DUPONT;JACQUES;1 DURAND;PIERRE;2 MARTIN;JACQUES;3 ANDRE;GILLES;2 johand@osiris: ~/src/CCM/bash/join $ cat doit join -t ';' -1 1 -2 3 -o "2.1 2.2 1.1 1.2 1.3 1.4" PARAMETRES CLIENTS johand@osiris: ~/src/CCM/bash/join $ source doit DUPONT;JACQUES;1;A;B;B DURAND;PIERRE;2;C;-;G MARTIN;JACQUES;3;B;D;E
man join; info join
<edit> La ligne ANDRE;GILLES n'apparaît pas. Je cherche la solution </edit>
Il faut au minimum trier CLIENTS selon le champ commun:
sort -t ";" -k 3 CLIENTS > CLIENTS.sorted et travailler avec le fichier trié.
Gates gave ^H sold you the windows.
GNU gave us the whole house.(Alexandrin)
Merci à vous deux. Super efficace.
Apparement, ça marche avec le join.
Je n'ai pas testé si je n'ai pas d'erreurs.
Sinon, je suivrais les conseils de Jisisiv
En tout cas, je garde au chaud ta réponse dubcek.
Apparement, ça marche avec le join.
Je n'ai pas testé si je n'ai pas d'erreurs.
Sinon, je suivrais les conseils de Jisisiv
En tout cas, je garde au chaud ta réponse dubcek.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
J'ai effectivement des lignes qui manquent.
En triant le fichier client, toujours le problème
En triant le fichier paramètres et le fichier client, le problème est résolu !!!!
Merci encore.
En triant le fichier client, toujours le problème
En triant le fichier paramètres et le fichier client, le problème est résolu !!!!
Merci encore.
dubcek
Messages postés
18755
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
14 novembre 2024
5 620
11 sept. 2012 à 16:10
11 sept. 2012 à 16:10
il faut trier avec join
man join ... Important: FILE1 and FILE2 must be sorted on the join fields. ...