usar tamaño sort por ordenar listar como comando columna bash unix sorting ksh

bash - tamaño - ¿Por qué** ordenar** no ordena lo mismo en cada máquina?



sort por columna (4)

Usar el mismo comando de ordenación con la misma entrada produce resultados diferentes en diferentes máquinas. ¿Cómo arreglo eso?


Esto probablemente se deba a diferentes configuraciones de las variables de entorno de la configuración regional . sort usará estas configuraciones para determinar cómo comparar cadenas. Al configurar estas variables de entorno de la forma que desee antes de llamar a sort , debería poder obligarlo a comportarse de una manera específica.


Esto puede ser el resultado de diferencias locales:

$ 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 debería corregir el problema.


Por más de lo que siempre quiso saber sobre el sort , lea la especificación de sort en Single Unix Specification v3 . Afirma

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

IOW, cómo sort ordenación depende de la configuración de la configuración regional (idioma) del entorno en el que se ejecuta la secuencia de comandos.


La página de manual en OS X dice:

******* ADVERTENCIA ******* La configuración regional especificada por el entorno afecta el orden de clasificación. Establezca LC_ALL = C para obtener el orden de clasificación tradicional que usa valores de bytes nativos.

que podría explicar las cosas.

Si algunos de sus sistemas no tienen soporte de configuración regional, se establecerían de forma predeterminada en esa configuración regional (C), por lo que no tendría que configurarlo en esos. 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, bastará con asegurarse de que compartan la configuración regional.

Para obtener más información canónica, consulte la descripción de The Single UNIX ® Specification, Versión 2 de la configuración regional , las variables de entorno , setlocale () y la descripción de la utilidad sort (1) .