comando sort en Unix con sort numérico

Tengo file1:

"$lvl=57" "$lvl=20" "$lvl=48" "$lvl=17" "$lvl=58" 

File2 I quiero:

"$lvl=17" "$lvl=20" "$lvl=48" "$lvl=57" "$lvl=58" 

Básicamente, una especie de archivo1 numéricamente.

Comentarios

  • Cuando ejecuto un sort simple Unix en su Archivo1, sin opciones, obtengo su Archivo2. ¿Qué estás haciendo diferente? ¿Qué está dejando fuera de esta pregunta?

Respuesta

Me gusta -V –version-sort: se comporta muy bien en muchas situaciones mezclando cadenas y números

sort -V 

Utilizo esta opción muy a menudo …

En cierta dirección , ls -v para version-sort ls.

Respuesta

Debes decirle a sort -n que ordene por la parte después de =:

sort -t = -k 2n 

Comentarios

  • Recientemente estuve buscando esto ^^. Pero una pregunta más. ¿Qué -k2n? ¿Eso está relacionado con el tipo numérico? gracias.
  • @KasiyA -k define una clave de clasificación. Consulte la página del manual para obtener más detalles. -k2n define una clave de clasificación que comienza en el segundo campo y termina al final de la línea y la convierte en una clave de clasificación numérica.

Respuesta

Descubrí que, simplemente ejecute sort -h, funcionará. Lo llaman --human-numberic-sort.

sort -h file1 > file2 

Respuesta

use sort:

sort -n file1 > file2 

-n, –numeric-sort
compare según el valor numérico de la cadena

 sort -g file1 > file 2 

-g, –general-numeric-sort

Comentarios

  • No, todos esos las líneas tienen la misma clasificación con sort -n ya que no ' comienzan con un número. La razón por la que los clasifica es el último recurso de clasificación de línea completa (léxica, no numéricamente) que se hace para líneas con la misma clasificación. Eso ordenaría "$lvl=17" antes de "$lvl=2".
  • @St é phaneChazelas gracias por señalarlo.
  • Parafraseando, -n y -g son redundantes aquí ya que la entrada no es numérica . Entonces, esta respuesta es engañosa, de ahí el voto negativo (también tenga en cuenta que -g y las opciones largas son específicas de GNU).
  • pero -g es bueno en general-numérico- sort
  • Eso ' sigue siendo para ordenar valores numéricos, la diferencia con -n es que ' s no se limita a enteros decimales. Eso aún ordenaría "$lvl=17" antes de "$lvl=2" como parte de la clasificación de último recurso.

Respuesta

sort -n es lo que desea utilizar. Ordena como ordenamos los números. sort -k 2 -n file1

Comentarios

  • Pero el OP quiere ordenar en orden ascendente, que es el predeterminado. ¿Por qué sugiere el orden inverso?
  • Lo anterior es correcto cuando los campos están separados por pestañas o espacios y no funcionan en OP ' s.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *