El uso del mismo comando ordenar con la misma entrada produce resultados diferentes en máquinas diferentes. ¿Cómo arreglo eso?¿Por qué ** ordenar ** no ordena lo mismo en cada máquina?
Respuesta
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).
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.
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.
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.
- 1. xsl: ordena, ¿por qué no funciona?
- 2. ActiveRecord Find All no ordena por ID?
- 3. RDLC Informe no se ordena el camino lo cuento a
- 4. ¿Por qué Guid.ToByteArray() ordena los bytes de la forma en que lo hace?
- 5. En Python hay algo así como update que es para actualizar lo que se ordena ordenar?
- 6. ¿Por qué Y hace lo mismo que yy?
- 7. std :: map ordena por datos?
- 8. ¿Por qué array_unique ordena los valores?
- 9. ¿Por qué utilizar Handlers mientras runOnUiThread hace lo mismo?
- 10. ¿Por qué location.toString() informa lo mismo que location.href?
- 11. Por qué FPS no es lo mismo que la aplicación de cámara original
- 12. ¿No es 00.0 lo mismo que 0.0?
- 13. ¿Por qué no es `" repeat "* 3` lo mismo que` 3 * "repeat" `en Ruby?
- 14. Linq ordenar, agrupar por orden y por cada grupo?
- 15. Lo que realmente sucede en Javascript Ordenar
- 16. MongoDB: ordena por dos campos suma
- 17. DataTable.DefaultView.Sort no ordena
- 18. ¿Por qué "foo" .toString() no es lo mismo que toString.call ("foo")?
- 19. si uno se queja acerca de get(), ¿por qué no hacer lo mismo con scanf ("% s", ...)?
- 20. Ignorar OpenMP en la máquina que no lo tiene
- 21. Consulta SQL: ordena por longitud de caracteres?
- 22. por qué defun no es lo mismo que (setq <name><lambda>)?
- 23. literales de cadena que contienen '\ 0' - por qué no son lo mismo?
- 24. Ámbito de la ventana de la consola Firebug. ¿Por qué no es "esto" siempre lo mismo?
- 25. ordena el resultado de la consulta sin seleccionar esa columna, pero ordena por esa columna?
- 26. YARD no es lo mismo que RDoc?
- 27. Encoding.Default no es lo mismo que ninguna codificación en File.ReadAllText?
- 28. ¿Por qué hay tantas formas ligeramente diferentes de hacer lo mismo en Ruby?
- 29. Ordenar cada resultado en la vista
- 30. ¿por qué PL/I no lo hizo en informática científica?
¿Cómo se establece la configuración regional en LC_ALL = C? – Malcolm
@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