Pregunta

cuando trato de ordenar el siguiente archivo de texto 'de entrada':

test1 3   
test3 2
test 4

con el comando

sort input

la salida es exactamente la entrada. Aquí está la salida de

od -bc input

:

0000000 164 145 163 164 061 011 063 012 164 145 163 164 063 011 062 012
          t   e   s   t   1  \t   3  \n   t   e   s   t   3  \t   2  \n
0000020 164 145 163 164 011 064 012
          t   e   s   t  \t   4  \n
0000027

Es sólo una pestaña archivo separado con dos columnas. Cuando hago

sort -k 2

La salida cambia a

test3 2
test1 3
test 4

que es lo que cabría esperar. Pero si lo hago

sort -k 1

no cambia nada con respecto a la entrada, mientras que se puede esperar 'prueba' para ordenar antes 'test1'. Por último, si lo hago

cat input | cut -f 1 | sort

consigo

test
test1
test3

como se esperaba. ¿Hay una explicación lógica para esto? Exactamente lo que se supone que hacer una especie de forma predeterminada, algo como:

sort -k 1

Mi versión del tipo:

sort (GNU coreutils) 7.4

No hay solución correcta

Otros consejos

Desde las páginas de manual:

  

* ADVERTENCIA * El entorno local especificado por el entorno afecta   ordenar          orden. Conjunto LC_ALL = C para obtener el orden de clasificación tradicional que utiliza   nativo          valores de bytes.

Por lo que parece export LC_ALL = C debe ayudar

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