7 votos

Especie con minúsculas (mayúsculas minúsculas antes) en macOS en el Terminal

Estoy tratando de usar la respuesta en GNU Ordenar por entre mayúsculas y minúsculas para ordenar un archivo en mi Mac OS.

Mi file.txt tiene este aspecto:

"Best"
"A"
"BEST"

En la segunda respuesta a la cuestión mencionada, se dice que uno puede hacer:

echo -e "d\nD\nc\nb\nB\na" | sort --ignore-case file.txt

y la salida debe ser:

"A"
"Best"
"BEST"

Sin embargo, cuando lo hago en mi pc, me sale:

"A"
"BEST"
"Best"

No importa si uso el --ignore-case o no, el resultado es el mismo.

Quizás LC_COLLATE=C no se puede establecer en Mac OS?

¿Alguien sabe cómo usar sort y han minúsculas < mayúsculas en Mac OS?

EDITAR

@jaume recomendó la instalación de coreutils y el uso de GNU especie. He intentado brew install coreutils y, a continuación, gsort -f file.txt , pero todavía no tuvo suerte.

2voto

Michael Zhou Puntos 167

Orden de clasificación se define en su locale.

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

Cuando LC_COLLATE se define como LC_COLLATE="en_US.UTF-8" en macOS, LC_COLLATE usa la C o POSIX definición. El comportamiento predeterminado de sort es para ordenar en orden ascii donde mayúsculas tiene prioridad sobre minúsculas.

En Linux, cuando LC_COLLATE="en_US.UTF-8" el LC_COLLATE definición no es estándar. El comportamiento predeterminado de sort es ignorar y minúsculas tiene prioridad sobre el uso de mayúsculas.

Para imitar predeterminado de Linux sort comportamiento en macOS, puede utilizar tr "traducir" las letras minúsculas a mayúsculas y mayúsculas a minúsculas, de ordenación con el ignore-case de la opción (-f), a continuación, cambiar el fondo de la caja de nuevo.

tr 'a-zA-Z' 'A-Za-z' <file.txt | sort -f | tr 'a-zA-Z' 'A-Za-z'

EJEMPLO:

cat file.txt
"cat"
"Best"
"A"
"BEST"
"Castro"
"alfred"
"a"
"CAT"

tr 'a-zA-Z' 'A-Za-z' <file.txt | sort -f | tr 'a-zA-Z' 'A-Za-z'
"a"
"A"
"alfred"
"Best"
"BEST"
"Castro"
"cat"
"CAT"    

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