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
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.
sort
simple Unix en su Archivo1, sin opciones, obtengo su Archivo2. ¿Qué estás haciendo diferente? ¿Qué está dejando fuera de esta pregunta?