2008-08-26 14 views

Respuesta

20

El man-page en OS X dice:

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.

lo que podría explicar las cosas.

Si algunos de sus sistemas no tienen el soporte de locales, tendrían por defecto en esa localidad (C), por lo que no tendrían que establecer que en aquellos. Si tiene algunos que admiten configuraciones regionales y desean el mismo comportamiento, configure LC_ALL=C en esos sistemas. Esa sería la manera de tener tantos sistemas como sé hacerlo de la misma manera.

Si no tiene ningún sistema sin configuración regional, solo asegúrese de que compartan la configuración regional probablemente sea suficiente.

Para obtener más información canónica, ver el The Single UNIX Specification, Version Descripción ® 2 de locale, environment variables, setlocale() y la descripción de la utilidad sort(1).

+1

¿Cómo se establece la configuración regional en LC_ALL = C? – Malcolm

+1

@Malcolm: muchas recomendaciones le indicarán que exporte la variable LC_ALL ... pero anula la configuración del shell de los usuarios. Ver mi respuesta [aquí] (http://stackoverflow.com/questions/6923464/unix-sort-ignores-whitespaces/17180962#17180962) para configurarlo para un alcance establecido – mateor

3

Esto puede ser el resultado de diferencias de entorno local:

$ echo 'CO2_ 
CO_' | env LC_ALL=C sort 
CO2_ 
CO_ 


$ echo 'CO2_ 
CO_' | env LC_ALL=en_US sort 
CO_ 
CO2_ 

establecer la variable de entorno LC_ALL en el mismo valor debe corregir el problema.

3

Esto es probablemente debido a configuraciones diferentes del locale environment variables. sort usará estas configuraciones para determinar cómo comparar cadenas. Al configurar estas variables de entorno de la manera que desee antes de llamar al sort, debe poder obligarlo a comportarse de una manera específica.

2

Para obtener más de lo que siempre quiso saber sobre sort, lea specification of sort en el Single Unix Specification v3. Indica

Las [...] comparaciones se realizarán utilizando la secuencia de clasificación de la configuración regional actual.

IOW, la forma en que sort ordena depende de la configuración del entorno (idioma) del entorno en el que se ejecuta el script.

Cuestiones relacionadas