|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre du Club
![]() Analyste/Développeur PHP/java Inscription : juillet 2007 Messages : 61 ![]() |
Bonjour
je rencontre des problèmes pour trier des lignes avec des caractères spéciaux du style $,(),[],[] la commande sort les ignore alors que je n'ai pas utilisé le paramètre -d ou autre... j'utilise les paramètre par défaut... j'ai essayé différents paramètres du sort mais sans succès et je commence à être à court d'idée Plus précisément : Pour deux dossiers : je récupère via un find (pour avoir le chemin complet des fichiers ce que ne permet pas ls) la liste des fichier dans une arborescence les fichiers peuvent donc contenir des caractères spéciaux tels que le $ (à cause d'un fichier qui provient d'un serveur windows et dont le nom ne peut absolument pas être changé). j'ai donc 2 liste qui ressemble à ca : a/b/toto.txt a/b/tato.txt a/b/toto(ab).txt a/c/d/pouet.txt a/b/toto$ab.txt a/b/toto$zy.txt a/b/toto(zy).txt logiquement si on trie ca donne ca : a/b/tato.txt a/b/toto.txt a/b/toto(ab).txt a/b/toto(zy).txt a/b/toto$ab.txt a/b/toto$zy.txt a/c/d/pouet.txt sauf que sort fait comme si les () et $ n'existaient pas et donc tri de la facon suivante : a/b/tato.txt a/b/toto.txt a/b/toto(ab).txt a/b/toto$ab.txt a/b/toto(zy).txt a/b/toto$zy.txt a/c/d/pouet.txt et cela me pose d'énormes problème pour mon algorithme après qui se base sur l'ordre alphabétique (pour des raisons d'optimisations vitales) voilà, si quelqu'un savait comment faire en sorte d'avoir ma liste des fichiers triés par ordre alpahbétique avec prise en compte des caractère spéciaux, ca serait sympa car j'en suis à m'arracher les cheveux... NB : oui ls permet de retourner la liste des fichiers triée correctement, sauf qu'il ne peux pas (d'après une recherche web et étude du man) retourner le chemin des fichiers Merci. |
|
10
|
|
|
#2 |
|
Membre éclairé
![]() Inscription : février 2011 Messages : 83 ![]() |
Je dis ça c'est peut-être pas possible faudrait voir ton script, mais tu pourrais éventuellement faire un 'readlink -e "$file"' derrière ton ls ?
|
|
|
11
|
|
|
#3 |
|
Membre du Club
![]() Analyste/Développeur PHP/java Inscription : juillet 2007 Messages : 61 ![]() |
Bonjour
Comme je l'ai dit à plusieurs reprise, je n'utilise pas la commande ls mais la commande find. j'ai fini par résoudre mon problème en faisant un LC_ALL=C avant de faire mon find |sort et là ca marche... |
|
10
|
Copyright © 2000-2012 - www.developpez.com