sort separador ejemplos comando columnas campos cadena buscar bash shell unix

bash - separador - comando sort unix ejemplos



Ordenando datos basados en la segunda columna de un archivo (4)

Solución:

sort -k 2 -n filename

más detallado escrito como:

sort --key 2 --numeric-sort filename

Ejemplo:

$ cat filename A 12 B 48 C 3 $ sort --key 2 --numeric-sort filename C 3 A 12 B 48

Explicación:

  • -k # - este argumento especifica la primera columna que se usará para ordenar. (tenga en cuenta que la columna aquí se define como un campo delimitado por espacios en blanco; el argumento -k5 ordenará comenzar con el quinto campo en cada línea, no el quinto carácter en cada línea)

  • -n : esta opción especifica un "tipo numérico", lo que significa que la columna debe interpretarse como una fila de números, en lugar de texto.

Más:

Otras opciones comunes incluyen:

  • -r : esta opción invierte el orden de clasificación. También se puede escribir como --reverse .
  • -i : esta opción ignora los caracteres no imprimibles. También se puede escribir como --ignore-nonprinting .
  • -b : esta opción ignora los espacios en blanco iniciales, lo que es útil ya que se usan espacios en blanco para determinar el número de filas. También se puede escribir como --ignore-leading-blanks .
  • -f - Esta opción ignora el caso de la letra. "A" == "a". También se puede escribir como --ignore-case .
  • -t [nuevo separador] - Esta opción hace que el preprocesamiento use un operador que no sea espacio. También se puede escribir como --field-separator.

Hay otras opciones, pero estas son las más comunes y útiles, que uso a menudo.

Tengo un archivo de dos columnas n número de filas.

la columna 1 contiene names y columna2 age .

Quiero ordenar el contenido de este archivo en orden ascendente según la age (en la segunda columna).

El resultado debe mostrar el name de la persona más joven junto con el name y luego la segunda persona más joven y así sucesivamente ...

Cualquier sugerencia para un guión shell o bash.


Para valores separados por tabuladores, se puede usar el siguiente código

sort -t$''/t'' -k2 -n

-r se puede usar para obtener datos en orden descendente.
-n para el tipo numérico
Para el orden descendente a continuación es el código

sort -t$''/t'' -k2 -rn


Puede usar el comando sort :

sort -k2 -n yourfile

Por ejemplo:

$ cat ages.txt Bob 12 Jane 48 Mark 3 Tashi 54 $ sort -k2 -n ages.txt Mark 3 Bob 12 Jane 48 Tashi 54


Usa el sort

sort ... -k 2,2 ...