1 votes

Comment faire en sorte que les commandes "ls" et "sort" reproduisent le triage du Finder.app en utilisant LC_COLLATE

Dans le Finder.app d'Apple, les caractères spéciaux viennent avant les chiffres qui sont ensuite suivis des caractères alphabétiques. Il semble que cela s'appelle "l'ordre de tri naturel".

EDIT Pour clarifier, j'utilise ls parce que j'essaie de copier des noms de fichiers du Finder vers un document texte et de les trier comme le fait le Finder.

Pour tester, j'ai créé 7 fichiers avec les noms ci-dessous en utilisant touch {[,1,2,3,A,B,C,}

[
1
2
3
A
B
C

Utilisation de ls -f la parenthèse se retrouve après les chiffres et avant les caractères alpha au lieu d'être au début.

0-zsh% ls 1 2 3 A B C [

0-zsh% ls -f . . 1 A C 3 [ B 2

J'ai essayé de changer le locale dans le shell, sans succès.

C'est ma région :

0-zsh% locale                                  
LANG="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_CTYPE="C"
LC_MESSAGES="C"
LC_MONETARY="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_ALL="C"

Voici les options locales anglaises possibles

0-zsh% locale -a | grep -i en
en_NZ
en_US.US-ASCII
en_US.UTF-8
en_NZ.ISO8859-1
en_AU.US-ASCII
en_US
en_NZ.UTF-8
en_AU.ISO8859-15
en_US.ISO8859-15
en_NZ.ISO8859-15
en_AU.UTF-8
en_CA
en_NZ.US-ASCII
en_GB.ISO8859-1
en_CA.US-ASCII
en_CA.ISO8859-15
en_US.ISO8859-1
en_GB.UTF-8
en_GB.US-ASCII
en_AU
en_GB
en_CA.UTF-8
en_IE.UTF-8
en_CA.ISO8859-1
en_AU.ISO8859-1
en_IE
en_GB.ISO8859-15

https://www.engadget.com/2008-06-24-mac-101-finder-filename-sorting.html

2voto

wch1zpink Points 6067

Cela devrait fonctionner pour vous sur la ligne de commande.

J'ai utilisé echo au lieu de ls dans la commande suivante pour produire la liste.

echo -e "C\nA\nB\n2\n1\n]\nb\n3\nD\n[\na"

C
A
B
2
1
]
b
3
D
[
a

echo -e "C\nA\nB\n2\n1\n]\nb\n3\nD\n[\na" |sort -df produit

[
]
1
2
3
A
a
B
b
C
D

echo -e "C\nA\nB\n2\n1\n]\nb\n3\nD\n[\na" |sort -d produit

[
]
1
2
3
A
B
C
D
a
b

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X