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 :

Classer les mots d'un fichier par ordre alphabétique


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2015
    Messages : 51
    Par défaut Classer les mots d'un fichier par ordre alphabétique
    Bonjour,

    Je recherche une solution pour classer un mot comme "bonjour" par ordre alphabétique pour avoir "bjnooru". Il y a bien la commande sort, mais elle ne s'applique qu'aux lignes, mais pas aux mots contenus dans cette ligne.
    Merci.

  2. #2
    Expert confirmé Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 041
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 041
    Par défaut
    salut,

    il n'y a pas de commande toute faite, il va falloir écrire une petite fonction, un petit algorithme

    une façon de procéder peut être, pour chaque mot, de découper le mot en lettres, 1 lettre par ligne, puis de trier avec sort et enfin ré-assembler les lignes pour reformer un mot

    ça c'est pour le tri des mots, restera à gérer une phrase complète composée de mots

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

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

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ sed 's/./&\n/g'<<<"bonjour"|sort|sed ':z;N;$!b z;s/\n//g'               
    bjnooru

  4. #4
    Expert confirmé Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 041
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 041
    Par défaut
    Citation Envoyé par Flodelarab Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (...) | sed ':z;N;$!b z;s/\n//g'
    yep, j'avais envisagé un truc genre (...) | xargs | sed -e 's/ //g' plus simplement, si tu peux décortiquer ton sed à l'occasion je suis preneur ^^

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 293
    Par défaut
    : indicateur d'étiquette pour faire des branchements (inconditionnels ou conditionnels)
    :z étiquette z
    N Nouvelle ligne ajoutée au buffer avec un \n pour signifier le retour à la ligne.
    b Saut inconditionnel
    b z saut inconditionnel à l'étiquette z
    1b z à la ligne 1, saut inconditionnel à l'étiquette z
    $b z à la dernière ligne, saut inconditionnel à l'étiquette z
    $!b z si c'est pas la dernière ligne, saut inconditionnel à l'étiquette z (Tout le fichier est dans le buffer)
    s/\n//g suppression totale des \n du fichier.

    Sinon, voici un exemple de saut conditionnel et son contraire (pour un cryptage facile et pas cher; le premier cryptogramme commence toujours par a, le second jamais):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $ sed ':bozo;y/abcdefghijklmnopqrstuvwxyz / abcdefghijklmnopqrstuvwxyz/;s/^a/&/;T bozo'<<<"bonjour tout le monde"                                                                    
    anmintqzsntszkdzlnmcd
    $ sed ':bozo;y/abcdefghijklmnopqrstuvwxyz / abcdefghijklmnopqrstuvwxyz/;s/^a/&/;t bozo'<<<"bonjour tout le monde"                                                                    
     mlhmspyrmsryjcykmlbc

  6. #6
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 360
    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 360
    Par défaut
    Bonjour,
    D'autres solutions comme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "bonjour" | fold -w 1 | sort | tr -d "\n"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "bonjour" | fold -w 1 | columns -s | tr -d " "
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "bonjour" | grep -o '.' | columns -s | tr -d " "
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "bonjour" | sed 's/./&\n/g' | columns -s | sed 's/ //g'
    Et ma préférée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "bonjour" | sed 's/./&\n/g' | columns -s | column -t -s " " -o ""

Discussions similaires

  1. Classer les fichiers par ordre
    Par fabricen26 dans le forum Linux
    Réponses: 2
    Dernier message: 09/05/2014, 08h53
  2. Ordonner les élements d'un select par ordre alphabétique
    Par islyoung2 dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 11/03/2010, 11h07
  3. Réponses: 2
    Dernier message: 29/10/2008, 11h13
  4. Ouvrir des fichiers par ordre alphabétique
    Par gegadin dans le forum Général VBA
    Réponses: 2
    Dernier message: 17/09/2008, 17h25
  5. [débutant] Tri de fichiers par ordre alphabétique
    Par NicaeaCivitas dans le forum Langage
    Réponses: 5
    Dernier message: 30/11/2006, 15h25

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