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 :

sort d'un fichier avec pipe delimiteur


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut sort d'un fichier avec pipe delimiteur
    Bonjour

    Je ne suis pas spécialiste Linux et je cherche a trier un fichier de 7 colonnes séparés par des pipes

    J'ai déja tout essayé mais je n'y arrive pas, c'est probablement le pipe qui pose probleme

    442| 35000146|1120|ON|A|FRE|Hostert
    442| 35000146|1120|ON|A|GER|Hostert
    J'ai essayé ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    #
    PIPE=`|`;
    echo aa$PIPE
    sort -t$PIPE +6 areanam.txt > areanam.tmp
    Voici l'erreur
    ./t.sh: command substitution: line 2: syntax error near unexpected token `|'
    ./t.sh: command substitution: line 2: `|'
    : command not found
    aa
    sort: multi-character tab `+6'

  2. #2
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Voila j'ai fini par trouver

    J'avais 3 erreurs

    1- il suffit de proteger | avec "|"
    2- j'avais pas capté le -k numero du field
    3- j'avais oublié le <

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sort -t"|"  -k 6 <areanam.txt > areanam.tmp

  3. #3
    Membre émérite Avatar de jmelyn
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2007
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2007
    Messages : 703
    Par défaut
    Quelques petites corrections encore:

    • l'option -k nécessite plus de précisions: -k 6 veut dire "trier à partir du 6e champ et jusqu'à la fin de la ligne". Par contre -k 6,6 veut dire "trier à partir du 6e champ et jusqu'au 6e champ", c'est-à-dire "trier sur le 6e champ exactement".
    • le < est inutile: sort fichier trie le fichier.

    On obtient donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sort -t "|"  -k 6,6 areanam.txt > areanam.txt.new

  4. #4
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Merci

    Mais -t doit etre collé au séparateur non ?

  5. #5
    Membre émérite Avatar de jmelyn
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2007
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2007
    Messages : 703
    Par défaut
    L'option -t n'oblige pas à coller le caractère qui suit, bien que cela soit possible. Pour plus de lisibilité, je préfère "décoller"...

  6. #6
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Merci jmelyn

    Moi aussi je prefere decoller mais dans toutes les docs que j'ai vu c'est collé ?

    Et donc si je veux trier sur le champ ensuite sur le champ 5, ca donne


    Et sur le lien ci dessous

    http://lowfatlinux.com/linux-sort.html

    Je ne comprends pas ce qu'il fait avec ses +1 -2 ou ses +2 -3

Discussions similaires

  1. Comment utiliser join avec sort des 2 fichiers input
    Par Zwiter dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 14/08/2013, 19h57
  2. Trier fichier avec sort
    Par gdev7 dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 19/08/2008, 21h50
  3. Tri de fichier avec le "sort"
    Par LFC dans le forum Langage
    Réponses: 1
    Dernier message: 08/03/2006, 07h55
  4. [VB6] [Réseau] Récupérer la taille d'un fichier avec inet
    Par pcpunch dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 20/02/2003, 21h38
  5. enregistrer dans un fichier avec une appli mdi
    Par ferrari dans le forum C++Builder
    Réponses: 4
    Dernier message: 05/05/2002, 15h17

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