Pregunta

usando lo mismo clasificar Un comando con la misma entrada produce resultados diferentes en diferentes máquinas.¿Cómo arreglo eso?

¿Fue útil?

Solución

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

lo que podría explicar las cosas.

Si algunos de sus sistemas no tienen soporte local, usarán de forma predeterminada esa configuración regional (C), por lo que no tendrá que configurarlo en ellos.Si tiene alguno que admita configuraciones regionales y desee el mismo comportamiento, configure LC_ALL=C sobre esos sistemas.Esa sería la manera de que todos los sistemas que conozco lo hicieran de la misma manera.

Si no tiene ningún sistema sin configuración regional, probablemente sería suficiente asegurarse de que compartan la configuración regional.

Para obtener más información canónica, consulte la descripción de La especificación única UNIX®, versión 2 de lugar, Variables de entorno, establecerlocal() y la descripción del ordenar(1) utilidad.

Otros consejos

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.

Probablemente esto se deba a diferentes ajustes del variables de entorno local. sort utilizará esta configuración para determinar cómo comparar cadenas.Al configurar estas variables de entorno de la forma que desee antes de llamar sort, deberías poder forzarlo a comportarse de una manera específica.

Por más de lo que alguna vez quisiste saber sort, leer el especificación de sort en el Especificación única de Unix v3.Afirma

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

OIA, ¿cómo? sort Los tipos dependen de la configuración regional (idioma) del entorno en el que se ejecuta el script.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top