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 avec délimiteur


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Décembre 2010
    Messages
    258
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 258
    Par défaut Sort avec délimiteur
    Bonjour,

    Je veux trier une liste qui contient des "#" en ignorant ce qu'il y a derrière...

    Du style

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    ...
    Banane#436
    Fraise#8875
    Kiwi#432
    Orange#
    ...
    J'ai pensé faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    cat fichier | cut -d "# -f1 | sort -k 1,1 .....
    Il me trie bien dans l'ordre que je veux...
    Mais le souci c'est qu'a la fin j'ai perdu le -f2, et j'aimerai le reconcaténer après le tri.

    Donc comment faire ?
    Merci d'avance

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Par défaut
    Salut,

    sort utilise le tri alphabétique par défaut, donc un simple sort fichier devrait suffire, non ?

    Sinon on peut spécifier le délimiteur de son choix avec l'option "-t"

  3. #3
    Membre éclairé
    Inscrit en
    Décembre 2010
    Messages
    258
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 258
    Par défaut
    Merci pour ta réponse mais bizarement l'option "sort -t#" et l'option "cat | cut ... | sort" ne me renvoyent pas exactement la même chose

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Par défaut
    Tu as un exemple concret à nous soumettre s'il te plaît ?

  5. #5
    Membre actif
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Décembre 2012
    Messages : 43
    Par défaut
    Citation Envoyé par lokomass Voir le message
    Merci pour ta réponse mais bizarement l'option "sort -t#" et l'option "cat | cut ... | sort" ne me renvoyent pas exactement la même chose
    Pour répondre à ton problème de tri, je dirai que tu n'as que ça à faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cat $fichier | sort -t'#' -k1,1
    qui va trier ton fichier suivant la première colonne délimitée par un '#'.

    Quand tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cat $fichier | cut ... | sort ...
    tu coupes l'affichage pour n'avoir plus que la colonne sélectionné, et donc le 'sort' qui vient après n'a plus que cette colonne à 'manger'.
    cat -> affiche le fichier en entier
    cut -> découpe suivant le délimiteur envoyé et affiche la ou les colonnes sélectionnée(s)
    sort -> tri le résultat du cut avec ce qu'il reste.

  6. #6
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 349
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 349
    Par défaut
    Bonjour,

    Juste une question comme ça, pourquoi utiliser "cat", "cut fichier" ou "sort fichier", ne fonctionne plus ?

  7. #7
    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
    Bonjour,

    La commande qui devrait bien fonctionner est la suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sort -t '#' -k 1,1 fichier
    Il faut cependant faire attention à la variable d'environnement LC_COLLATE que je force personnellement à "C". Pour le faire, ça dépend de la distribution.
    Fichier source:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    banane#1
    kiwi#2
    orange#3
    Pomme#4
    ananas#5
    kaki#6
    Résultat:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Pomme#4
    ananas#5
    banane#1
    kaki#6
    kiwi#2
    orange#3

Discussions similaires

  1. SQL Server, mise en ligne de plusieur données avec délimiteur
    Par manhattan.project dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 12/06/2007, 17h52
  2. PB de Sort avec une TcxGrid de Devexpress
    Par Cazaux-Moutou-Philippe dans le forum Delphi
    Réponses: 3
    Dernier message: 31/05/2007, 01h22
  3. Réponses: 6
    Dernier message: 24/05/2007, 11h47
  4. [VBA-E] Tirage au sort avec probabilité
    Par clarisse dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 12/05/2006, 11h01
  5. [XSL] xsl:sort avec parametre et condition
    Par elraton dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 15/01/2005, 20h59

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