1 votos

Cómo conseguir que los comandos "ls" y "sort" reproduzcan la ordenación de Finder.app utilizando LC_COLLATE

En el Finder.app de Apple, los caracteres especiales van antes de los numéricos, a los que siguen los caracteres alfabéticos. Parece que esto se llama "Orden natural de clasificación".

EDITAR Para aclarar, estoy usando ls porque estoy tratando de copiar los nombres de los archivos desde el Finder a un documento de texto y tenerlos ordenados como lo hace el Finder.

Para probar he creado 7 archivos con los nombres que se indican a continuación utilizando touch {[,1,2,3,A,B,C,}

[
1
2
3
A
B
C

Utilizando ls -f el corchete termina después de los números y antes de los caracteres alfabéticos en lugar de al principio.

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

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

He probado a cambiar el locale en la cáscara sin suerte.

Esta es mi localidad:

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"

Estas son las posibles opciones de localización en español

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 Puntos 11

Esto debería funcionar para usted en la línea de comandos.

Utilicé echo en lugar de ls en el siguiente comando para producir la lista.

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 produce

[
]
1
2
3
A
a
B
b
C
D

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

[
]
1
2
3
A
B
C
D
a
b

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X