2011-08-23 8 views
6

[Esta es la reescritura de una pregunta similar le pregunté al revés ... Lo siento por la confusión!]¿Por qué la utilidad de ordenamiento de UNIX ignora los espacios iniciales sin la opción -b?

estoy confundido acerca de s principal y la sort utilidad estándar. Considerar el contenido de myfile:

a 
b 
    a 

Ejecución sort -t : myfile produce un resultado inesperado, al menos para mí:

a 
    a 
b 

¿Eso tiene sentido? <space> debe venir antes a-z (como es el caso en ASCII), o después. En el primer caso yo esperaría

a 
b 
a 

mientras que en el segundo caso

a 
b 
    a 

Por qué, entonces, qué sort parecen aplicarse la opción -b (ignorar que conduce s), si cuando no se incluyó ? De hecho, para estar seguro agregué la opción -t para tener exactamente un campo en cada línea. (According to the POSIX standard, "Un campo comprende una secuencia máxima de caracteres no separadores y, en ausencia de la opción -t, cualquier separador de campo anterior." sort myfile produce el mismo resultado, que también es inesperado.)

Gracias de antemano !

Respuesta

9

Depende de la configuración regional. Con

LC_COLLATE=en_US.utf8 sort myfile 

que consigo su resultado inesperado, y con

LC_COLLATE=C sort myfile 

que consigo su resultado esperado. También vea bash sort unusual order. Problem with spaces?

(no sé por qué tipo maneja -by -t como este.)

+0

1: La humildad :) –

+0

@Ernest: basta de esto! Eliminé la humildad –

+0

¡Gracias! En cuanto a cómo funciona el género en en_US.UTF-8, tampoco puedo entenderlo ... El [cuadro de colegios] (http://www.collation-charts.org/opensolaris/opensolaris.2008.05.en_US.UTF- 8.html) para en_US.UTF-8 no tiene espacio entre las A y las B ... –

7
$ sort -t : foo 
a 
    a 
    b 
$ env LC_ALL=C sort -t: foo 
    a 
    b 
a 

Desde la página del manual: * ADVERTENCIA * La configuración regional especificada por el medio ambiente afecta orden de clasificación. Establezca LC_ALL = C para obtener el orden de clasificación tradicional que usa valores de bytes nativos.

Cuestiones relacionadas