IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

join -j1 fichier1 fichier2 avec 1er champ contenant des espaces ne fonctionne pas


Sujet :

Shell et commandes GNU

  1. #1
    Membre confirmé Avatar de Liamm
    Femme Profil pro
    Enseignant
    Inscrit en
    Janvier 2019
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 164
    Par défaut join -j1 fichier1 fichier2 avec 1er champ contenant des espaces ne fonctionne pas
    Bonjour,

    En appliquant la commande join sur deux fichiers triés tous les deux sur le premier champ ( -j1 ) on obtient des erreurs lorsque le champ n°1 contient des espaces.

    Exemple :
    fichier1.csv :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Cerisier acide;Prunus cerasus;ROSACEÆ; . . .
    Cerisier des oiseaux;Prunus avium;ROSACEÆ; . . .
    fichier2.csv :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Cerisier acide;Prunus cerasus;150; . . .
    Cerisier des oiseaux;Prunus avium;1460; . . .
    Apparemment TSPCS le champ n° 1 ne contenait que "Cerisier" (¿à cause du blanc?)

    Qu'en pensez-vous ?

  2. #2
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 308
    Par défaut
    Bonjour

    Tu sais bien qu'il y a un séparateur d'enregistrement et un séparateur de champ. Souvent, par défaut, \n est le séparateur d'enregistrement et l'espace le séparateur de champ. Si ton fichier csv (comma separated values = valeurs séparées par un une virgule) a un séparateur inattendu, il faut lui préciser.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $ join -t ';' -j 1 fichier1.csv fichier2.csv
    Cerisier acide;Prunus cerasus;ROSACEÆ; . . .;Prunus cerasus;150; . . .
    Cerisier des oiseaux;Prunus avium;ROSACEÆ; . . .;Prunus avium;1460; . . .
    Ça marche bien.

    PS: Que signifie TSPCS ?

  3. #3
    Membre confirmé Avatar de Liamm
    Femme Profil pro
    Enseignant
    Inscrit en
    Janvier 2019
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 164
    Par défaut TSPCS signifie . . .
    . . . Tout se passe comme si

    J'avais utilisé l'option -t ';' pour les séparateurs de champs; on dirait que l'espace est interprété comme "fin du champ".
    Lorsque le premier champ ne comporte pas d'espace, ça marche très bien !
    Bonne journée

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/07/2015, 17h18
  2. Sous structure retournée avec 1er champ vide
    Par enzo68290 dans le forum C
    Réponses: 23
    Dernier message: 19/03/2013, 12h02
  3. Réponses: 0
    Dernier message: 17/01/2011, 14h06
  4. pb avec le champ <textarea> des formulaires
    Par laurentSc dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 04/04/2008, 14h52
  5. Réponses: 3
    Dernier message: 23/01/2007, 08h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo