que desea ordenar un archivo de texto a través de Linux sort
, que se ve asíespecie no clasificar como se esperaba (el espacio y la configuración regional)
v 1006
v10 1
v 1011
yo esperaría resultado como este:
v 1006
v 1011
v10 1
Sin embargo , usando sort
, incluso con todo tipo de opciones, la línea v10 1
está todavía en el medio. ¿Por qué? Entiendo que v10 1
está arriba en la parte inferior (dependiendo de si el carácter de espacio es más pequeño o más grande que 1
), pero ¿por qué se mantiene en el medio?
sólo un pequeño comentario, no es necesario poner el '; 'en' LC_ALL = en_US.utf8; ordenar foo.txt'. Sin embargo, hay una diferencia en el comportamiento. Si ejecuta 'SOME_VAR = foo some_command parameters' está ejecutando some_command con sus parámetros, y con el env var SOME_VAR siendo igual a foo, pero solo para este comando. Si después de regresar al depósito, 'echo $ SOME_VAR', tendrá el valor original, no' foo' –
Oh. OK, lo entiendo ahora. Pero ... ¿cuál es el PUNTO al ignorar los espacios en blanco? –
¿Por qué -k parece respetar el espacio en blanco en LC_ALL = en_US.utf8? p. LC_ALL = en_US.utf8 sort -k1,1 foo.txt da el mismo comportamiento que LC_ALL = C sort foo.txt – Featherlegs