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.
Partager