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 accents


Sujet :

Shell et commandes GNU

  1. #21
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 101
    Points : 5 849
    Points
    5 849
    Par défaut
    En gardant la même idée:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function trieAccents {
        echo "$@" | sed -e "s/à/a#/g" -e "s/â/a##/g" -e "s/ç/c#/g" -e "s/é/e#/g" -e "s/è/e##/g" -e "s/ê/e###/g" -e "s/ë/e####/g" -e "s/î/i#/g" -e "s/ï/i##/g" -e "s/ô/o#/g" -e "s/ö/o##/g" -e "s/ù/u#/g" -e "s/ü/u##/g" -e "s/Â/A#/g" -e "s/À/A##/g" -e "s/Ç/C#/g" -e "s/É/E#/g" -e "s/È/E##/g" -e "s/Ê/E###/g" -e "s/Ë/E####/g" -e "s/Î/I#/g" -e "s/Ï/I##/g" -e "s/Ô/O/#g" -e "s/Ö/O##/g" -e "s/Ù/U#/g" -e "s/Ü/U##/g" \
            | tr ' ' '\n' | sort --ignore-case \
            | sed -e "s/a##/â/g" -e "s/a#/à/g" -e "s/c#/ç/g" -e "s/e####/ë/g" -e "s/e###/ê/g" -e "s/e##/è/g" -e "s/e#/é/g" -e "s/i##/ï/g" -e "s/i#/î/g" -e "s/o##/ö/g" -e "s/o#/ô/g" -e "s/u##/ü/g" -e "s/u#/ù/g" -e "s/A##/À/g" -e "s/A#/Â/g" -e "s/C#/Ç/g" -e "s/E####/Ë/g" -e "s/E###/Ê/g" -e "s/E##/È/g" -e "s/E#/É/g" -e "s/I##/Ï/g" -e "s/I#/Î/g" -e "s/O##/Ö/g" -e "s/O#/Ô/g" -e "s/U##/Ü/g" -e "s/U#/Ù/g"
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $ trieAccents leba leho léa léco légo lémo lèa lèbi lèca lèculeà
    léa
    lèa
    leba
    lèbi
    lèca
    léco
    lècu
    légo
    leho
    lémo
    S'il n'y a pas d'espaces dans les noms des fichiers:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cd "$REPCON"; trieAccents *.contact

  2. #22
    Membre régulier
    Inscrit en
    Décembre 2010
    Messages
    258
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 258
    Points : 77
    Points
    77
    Par défaut
    En fait il y a des espaces dans les noms de fichiers, justement...

    Est-ce génant ? Est-ce possible de contourner ce souci ? En remplaçant un espace par un caractère par exemple ?

  3. #23
    Membre régulier
    Inscrit en
    Décembre 2010
    Messages
    258
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 258
    Points : 77
    Points
    77
    Par défaut
    Bon j'ai réussi à trouver une solution pour les espaces (c'est encore une bidouille lol).
    En fait, dans le même esprit, je remplace un espace par une chaîne de caractère introuvable dans mon nom de contact : z###z (par exemple).
    Du coup comme je faisais une boucle dans le répertoire des contacts, dans le même esprit je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    IFS=$'\n'; for i in `trieAccents $(ls "$REPCON"/*.contact | sed "s/ /z###z/g")`; do getContact "$i"; done; unset IFS
    Je garde le IFS qui permet de gérer les espaces dans les chemins.
    Et ensuite ta fonction (merci beaucoup au passage )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    function trieAccents {
    	echo "$@" | sed -e "s/à/a#/g" -e "s/â/a##/g" -e "s/ç/c#/g" -e "s/é/e#/g" -e "s/è/e##/g" -e "s/ê/e###/g" -e "s/ë/e####/g" -e "s/î/i#/g" -e "s/ï/i##/g" -e "s/ô/o#/g" -e "s/ö/o##/g" -e "s/ù/u#/g" -e "s/ü/u##/g" -e "s/Â/A#/g" -e "s/À/A##/g" -e "s/Ç/C#/g" -e "s/É/E#/g" -e "s/È/E##/g" -e "s/Ê/E###/g" -e "s/Ë/E####/g" -e "s/Î/I#/g" -e "s/Ï/I##/g" -e "s/Ô/O/#g" -e "s/Ö/O##/g" -e "s/Ù/U#/g" -e "s/Ü/U##/g" \
    			  | tr ' ' '\n' | sort -f \
    			  | sed -e "s/a##/â/g" -e "s/a#/à/g" -e "s/c#/ç/g" -e "s/e####/ë/g" -e "s/e###/ê/g" -e "s/e##/è/g" -e "s/e#/é/g" -e "s/i##/ï/g" -e "s/i#/î/g" -e "s/o##/ö/g" -e "s/o#/ô/g" -e "s/u##/ü/g" -e "s/u#/ù/g" -e "s/A##/À/g" -e "s/A#/Â/g" -e "s/C#/Ç/g" -e "s/E####/Ë/g" -e "s/E###/Ê/g" -e "s/E##/È/g" -e "s/E#/É/g" -e "s/I##/Ï/g" -e "s/I#/Î/g" -e "s/O##/Ö/g" -e "s/O#/Ô/g" -e "s/U##/Ü/g" -e "s/U#/Ù/g" \
    			  | sed -e "s/z###z/ /g"
    }
    Seulement voilà, lorsque je test avec mes vrais contacts (et non plus des tests bidons) ma liste n'est plus triée avec les accents alors qu'en test ça marchait !

    L'affichage me donne (une partie) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    /volume1/Mes Documents/Contacts/Myriam.contact
    /volume1/Mes Documents/Contacts/Mélanie.contact
    /volume1/Mes Documents/Contacts/Mélina.contact
    /volume1/Mes Documents/Contacts/Nico Port.contact
    /volume1/Mes Documents/Contacts/Nono.contact
    Une idée :'( ?

  4. #24
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 101
    Points : 5 849
    Points
    5 849
    Par défaut
    Une idée? Oui: c'est probablement un problème d'encodage!

    Précédemment, tu as dit:
    Citation Envoyé par lokomass Voir le message
    En fait mon serveur est un NAS synology initialement en ash.
    Citation Envoyé par lokomass Voir le message
    le souci c'est que même si sous ash ça marcherai, c'est sous /bin/bash que le problème se pose, d'autant plus que ce sont des fichiers Windows en question.
    Citation Envoyé par lokomass Voir le message
    En fait ce sont tous mes contacts iPhone, donc non aucun nom de ce type, juste des espaces et des accents.
    Peut-être serait-il temps de décrire précisément l'environnement dans lequel tu exécutes ton script!

    Àmha, il faut que tu détermines l'encodage des noms de tes fichiers, par exemple, avec la commande:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    cd /volume1/Mes\ Documents/Contacts/
    echo *anie.contact
    => Mélanie.contact
    echo *anie.contact | od -c
    => pour voir précisément comment est encodé le 'é' dans le nom du fichier
    Du coup, il faut que l'encodage de ton script soit le même.
    Par exemple, tu insères une ligne "# Mélanie.contact" dans ton script, puis tu fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    grep anie.contact le_script
    => # Mélanie.contact
    grep anie.contact le_script | od -c
    => pour voir précisément comment est encodé le 'é' dans le script
    Si l'encodage est le même, ça devrait fonctionner!
    Si l'encodage est différent, il faut corriger, soit en passant le script par iconv, soit en changeant l'encodage dans ton éditeur
    Par exemple, avec emacs, pour connaître l'encodage courant:
    <menu-bar> <options> <mule> <describe-coding-system> runs the command describe-coding-system, which is an interactive compiled Lisp function in `mule-diag.el'.
    It is bound to C-h C, <f1> C, <help> C, <menu-bar> <options> <mule> <describe-coding-system>, <menu-bar> <help-menu> <describe> <describe-coding-system>.

    et, pour changer l'encodage:
    <menu-bar> <options> <mule> <set-various-coding-system> <set-buffer-file-coding-system> runs the command set-buffer-file-coding-system, which is an interactive compiled Lisp function in `mule.el'.
    It is bound to C-x RET f, <menu-bar> <options> <mule> <set-various-coding-system> <set-buffer-file-coding-system>.

  5. #25
    Membre régulier
    Inscrit en
    Décembre 2010
    Messages
    258
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 258
    Points : 77
    Points
    77
    Par défaut
    Pour être précis.
    Mon NAS Synology est en environnement par défaut en ash.
    J'ai installé le package bash, et tous mes batchs utilisent cet environnement.
    Les fichiers de contacts Iphone, sont crées depuis itunes Windows, et copiés dans un répertoire sur le NAS.

    En console bash le é devient /303/251/ tandis que dans la script c'est un 251 tout court. (les deux fichiers étaient en ainsi).
    Je suis sous notepad++, j'ai essayé dans tous les sens AINSI, UTF8, UTF8 sans bom... Ca déplace bien les accents, certains sont bon d'autres pas.

    J'ai du "Sér" avant du "Seb" ?
    Aussi, je sais pas si il y a un rapport mais j'ai du "Léa" avant du "Le Centre"

  6. #26
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 278
    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 278
    Points : 12 726
    Points
    12 726
    Par défaut
    Je serais curieux de savoir si iconv fonctionne sur son environnement étant donné qu'il n'y a pas les "locale" (c'est une vraie question de ma part) ???

    Je pense que l'installation de "locale" résoudrait le problème que l'on soit en ash ou en bash.

    Sinon, le problème de l'espace c'est que peut-etre que celui-ci est de la forme 0x80 au lieu de 0x20...

    Un petit od -c -t o1 pourrait nous en dire plus...
    Cordialement.

  7. #27
    Membre régulier
    Inscrit en
    Décembre 2010
    Messages
    258
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 258
    Points : 77
    Points
    77
    Par défaut
    iconv fonctionne puisque je m'en sert


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    0000000   /   v   o   l   u   m   e   1   /   M   e   s       D   o   c
            057 166 157 154 165 155 145 061 057 115 145 163 040 104 157 143
    0000020   u   m   e   n   t   s   /   C   o   n   t   a   c   t   s   /
            165 155 145 156 164 163 057 103 157 156 164 141 143 164 163 057
    0000040   L   e       C   e   n   t   r   e   .   c   o   n   t   a   c
            114 145 040 103 145 156 164 162 145 056 143 157 156 164 141 143
    0000060   t  \n
            164 012
    0000062

  8. #28
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 101
    Points : 5 849
    Points
    5 849
    Par défaut
    Citation Envoyé par lokomass Voir le message
    En console bash le é devient /303/251/ tandis que dans la script c'est un 251 tout court.
    Ce serait pas plutôt un 351 tout court?

  9. #29
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 278
    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 278
    Points : 12 726
    Points
    12 726
    Par défaut
    Voici une autre façon (qui n'utilise le sed qu'une seule fois):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    $ cat testsort.txt
    /volume1/Mes Documents/Contacts/Myriam.contact
    /volume1/Mes Documents/Contacts/Mélanie.contact
    /volume1/Mes Documents/Contacts/Mélina.contact
    /volume1/Mes Documents/Contacts/Nico Port.contact
    /volume1/Mes Documents/Contacts/Nono.contact
    $ sort testsort.txt
    /volume1/Mes Documents/Contacts/Myriam.contact
    /volume1/Mes Documents/Contacts/Mélanie.contact
    /volume1/Mes Documents/Contacts/Mélina.contact
    /volume1/Mes Documents/Contacts/Nico Port.contact
    /volume1/Mes Documents/Contacts/Nono.contact
    $ for i in $(cat -n testsort.txt | sed -e "s/à\|â/a/g" -e "s/ç/c/g" -e "s/é\|è\|ê\|ë/e/g" -e "s/î\|ï/i/g" -e "s/ô\|ö/o/g" -e "s/ùü/u/g" -e "s/Â\|À/A/g" -e "s/Ç/C/g" -e "s/É\|È\|Ê\|Ë/E/g" -e "s/ÎÏ/I/g" -e "s/Ô\|Ö/O/g" -e "s/Ù\|Ü/U/g" | sort -k2 | cut -f1); do cat -n testsort.txt | grep "^ *$i"; done | cut -f2
    /volume1/Mes Documents/Contacts/Mélanie.contact
    /volume1/Mes Documents/Contacts/Mélina.contact
    /volume1/Mes Documents/Contacts/Myriam.contact
    /volume1/Mes Documents/Contacts/Nico Port.contact
    /volume1/Mes Documents/Contacts/Nono.contact
    En gros, l'algorithme est:
    -On numérote les lignes du fichier non traité
    -On vire tous les accents en remplaçant par la lettre non accentuée
    -On trie sans tenir compte des n° de ligne et on récupère la liste des n° de ligne dans leur ordre d'apparition.
    -On affiche la ligne correspondante du fichier non traité sans les n° de lignes.

    Ici, je donne un exemple avec un fichier qui contient les données, mais on peut le faire sans fichier, à la volé comme par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $ ls | cat -n
         1  nt.tmp
         2  test100li.sh
         3  testsort.txt
         4  testtr.txt
    Et la commande sed peut s'écrire aussi comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -e "s/à\|â/a/g;s/ç/c/g;s/é\|è\|ê\|ë/e/g;s/î\|ï/i/g;s/ô\|ö/o/g;s/ùü/u/g;s/Â\|À/A/g;s/Ç/C/g;s/É\|È\|Ê\|Ë/E/g;s/ÎÏ/I/g;s/Ô\|Ö/O/g;s/Ù\|Ü/U/g"
    Cordialement.

  10. #30
    Membre régulier
    Inscrit en
    Décembre 2010
    Messages
    258
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 258
    Points : 77
    Points
    77
    Par défaut
    Oui 351 pardon

  11. #31
    Membre régulier
    Inscrit en
    Décembre 2010
    Messages
    258
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 258
    Points : 77
    Points
    77
    Par défaut
    Bon entre midi et deux, je me suis lancé finalement dans l'installation des locales.
    J'ai donc suivi le lien cité au début : http://www.bärwolff.de/tech-notes/sy...set-locale.txt
    Ça marche presque nikel ! (désolé disedorgue, je n'avait pas vu ta solution avant).
    Il ne me reste plus que l'histoire des espaces.
    Que Par exemple "Léa" soit avant "Le Centre"... Mais le je n'ai aucune idée du souci.

  12. #32
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 278
    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 278
    Points : 12 726
    Points
    12 726
    Par défaut
    Tu reprends ma solution en rajoutant dans le sed la suppression de l'espace, car à priori tu ne veux pas qu'il soit prit en compte.

    il suffit donc de rajouter dans le sed:
    1ère écriture
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed -e "s/ //g" -e ....
    ou
    2ème ecriture
    Cordialement.

  13. #33
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 278
    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 278
    Points : 12 726
    Points
    12 726
    Par défaut
    Si les "locale" fonctionnent, a priori, il y a une option coté sort:
    -b, --ignore-leading-blanks
    ignore leading blanks
    Cordialement.

  14. #34
    Membre régulier
    Inscrit en
    Décembre 2010
    Messages
    258
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 258
    Points : 77
    Points
    77
    Par défaut
    Malheureusement non
    L'option -b ne change rien.

    Un exemple de bizarerie

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Vincent Basse
    Vincent
    Vincent D....
    Vincent E.....
    Vincent Moto
    Moi j'aimerai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Vincent
    Vincent Basse
    Vincent D....
    Vincent E.....
    Vincent Moto
    Ou encore le apostrophe, moi j'ai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Josée
    Julia
    Julie F
    ...
    Jul's
    Et j'aimerai avoir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Josée
    Jul's
    Julia
    Julie F
    Est-ce normal ou pas ce trie ?

    Mes locales donnent :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    bash-3.2# locale
    LANG=fr_FR.UTF-8
    LC_CTYPE="fr_FR.UTF-8"
    LC_NUMERIC="fr_FR.UTF-8"
    LC_TIME="fr_FR.UTF-8"
    LC_COLLATE="fr_FR.UTF-8"
    LC_MONETARY="fr_FR.UTF-8"
    LC_MESSAGES="fr_FR.UTF-8"
    LC_PAPER="fr_FR.UTF-8"
    LC_NAME="fr_FR.UTF-8"
    LC_ADDRESS="fr_FR.UTF-8"
    LC_TELEPHONE="fr_FR.UTF-8"
    LC_MEASUREMENT="fr_FR.UTF-8"
    LC_IDENTIFICATION="fr_FR.UTF-8"
    LC_ALL=fr_FR.UTF-8

  15. #35
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 278
    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 278
    Points : 12 726
    Points
    12 726
    Par défaut
    Peux tu nous fournir la version de ton sort, ainsi que la commande que tu lances pour ces bizarreries ?
    Car là, j'ai du mal à comprendre puisque techniquement l'espace ou l'apostrophe son numériquement inférieurs au lettres (même aux chiffres), donc un sort même sans locale devrait fonctionner.

    Je prends aussi un petit od -c -to1 du résultat du sort.
    Cordialement.

  16. #36
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 458
    Points
    13 458
    Par défaut
    Au point ou tu en es, tu devrais remplacer tous les changements (après accents) par:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sed 's/[^A-Za-z0-9]//g'
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  17. #37
    Membre régulier
    Inscrit en
    Décembre 2010
    Messages
    258
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 258
    Points : 77
    Points
    77
    Par défaut
    Alors sort :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    NAS> sort --version
    sort (textutils) 2.1
    Written by Mike Haertel and Paul Eggert.
     
    Copyright (C) 2002 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions.  There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    La commande lancée est :
    Une partie de la sortie.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
           147 156 141 143 056 143 157 156 164 141 143 164 012 115 171 162
    0011060   i   a   m   .   c   o   n   t   a   c   t  \n   M   y   r   i
            151 141 155 056 143 157 156 164 141 143 164 012 115 171 162 151
    0011100   a   m       C   o   r   s   e   .   c   o   n   t   a   c   t
            141 155 040 103 157 162 163 145 056 143 157 156 164 141 143 164
    0011120  \n   N   i   c   o       G   T   R   .   c   o   n   t   a   c
            012 116 151 143 157 040 107 124 122 056 143 157 156 164 141 143
    0011140   t  \n   N   i   c   o       G   T   R       P   o   r   t   .
            164 012 116 151 143 157 040 107 124 122 040 120 157 162 164 056
    0011160   c   o   n   t   a   c   t  \n   N   o   n   o   .   c   o   n
            143 157 156 164 141 143 164 012 116 157 156 157 056 143 157 156
    0011200   t   a   c   t  \n   N   u   t   z   .   c   o   n   t   a   c
            164 141 143 164 012 116 165 164 172 056 143 157 156 164 141 143
    0011220   t  \n   N   u   t   z       F   i   x   e   .   c   o   n   t
            164 012 116 165 164 172 040 106 151 170 145 056 143 157 156 164
    0011240   a   c   t  \n   O   b   j   e   t   s       T   r   o   u   v
            141 143 164 012 117 142 152 145 164 163 040 124 162 157 165 166
    0011260 303 251   s       B   o   r   d   e   a   u   x   .   c   o   n
            303 251 163 040 102 157 162 144 145 141 165 170 056 143 157 156
    0011300   t   a   c   t  \n   O   d   i   x   .   c   o   n   t   a   c
            164 141 143 164 012 117 144 151 170 056 143 157 156 164 141 143
    0011320   t  \n   O   k   i   n   a   w   a   .   c   o   n   t   a   c

  18. #38
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 278
    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 278
    Points : 12 726
    Points
    12 726
    Par défaut
    Citation Envoyé par lokomass Voir le message
    Un exemple de bizarerie

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Vincent Basse
    Vincent
    Vincent D....
    Vincent E.....
    Vincent Moto
    Moi j'aimerai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Vincent
    Vincent Basse
    Vincent D....
    Vincent E.....
    Vincent Moto
    J'obtiens la même chose si j'ai une tabulation qui finit le mot "Vincent" de ton exemple

    Ou encore le apostrophe, moi j'ai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Josée
    Julia
    Julie F
    ...
    Jul's
    Et j'aimerai avoir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Josée
    Jul's
    Julia
    Julie F
    Est-ce normal ou pas ce trie ?
    Pour l'apostrophe, c'est normal car celui-ci ne fait pas partie des caractères alphanumérique ou espace (option -d).

    Concernant les espaces, l'option -b ne fait qu'ignorer les blancs en entête.
    Donc, je ne vois pas d'autres solutions que de les gérer par toi même.
    Exemple pour prise en compte apostrophe et espace:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ls | sed "s/ /######/g;s/'/ /g" | sort -d | sed "s/ /'/g;s/######/ /g"
    Cordialement.

  19. #39
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 278
    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 278
    Points : 12 726
    Points
    12 726
    Par défaut
    Bon, ça ne fonctionne pas car l'option "-d" invalide aussi les caractère accentués
    Cordialement.

  20. #40
    Membre régulier
    Inscrit en
    Décembre 2010
    Messages
    258
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 258
    Points : 77
    Points
    77
    Par défaut
    Ca commence à être un peu mort alors ?
    J'ai essayé depuis un shell ubuntu, plutôt que depuis le shell synology et j'ai la même chose en fait. Le souci n'est plus les accents mais les espaces et apostrophes en fait maintenant...

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 4 PremièrePremière 1234 DernièreDernière

Discussions similaires

  1. [SYBASE] Texte avec accents
    Par vsavoir dans le forum Sybase
    Réponses: 6
    Dernier message: 14/02/2005, 16h50
  2. [XSL] xsl:sort avec parametre et condition
    Par elraton dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 15/01/2005, 20h59
  3. [JavaMail] Pb avec accent dans sujet et corps de l'email
    Par shaun_the_sheep dans le forum API standards et tierces
    Réponses: 7
    Dernier message: 29/10/2004, 12h42
  4. Problème avec accents et CHARACTER SET ISO8859_1
    Par kinda dans le forum InterBase
    Réponses: 13
    Dernier message: 30/10/2003, 15h49
  5. PB : affichage de données avec accent sous delphi 6
    Par kinda dans le forum Débuter
    Réponses: 3
    Dernier message: 03/07/2003, 13h19

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