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 ...