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) .