Linux cómo usar awk para la clasificación de arrays

  

Operación del sistema Linux, awk es una herramienta de procesamiento de texto, que proporciona una variedad de funciones, ¿cómo usar awk para la ordenación de arrays? De hecho, hay muchas maneras de ordenar los arrays awk. La siguiente es una pequeña serie para ofrecerle una introducción detallada de cómo usar awk para la clasificación de arrays en Linux.

código es el siguiente:

[chengmo @ localhost ~] $ awk y lsquo; BEGIN {info = " esta es una prueba y "; división (información, TA, y " " ); para (k en tA) {imprimir k, tA [k];}} y rsquo;

4 prueba

1 este

2 es

3 a

Si necesita dar salida en orden, realice la salida mediante el posicionamiento del valor clave.

El código es el siguiente:

[chengmo @ localhost ~] $ awk ‘ BEGIN {info = " este es un test "; slen = split (info, tA, " "); para (i = 1; i "= slen; i ++) {print i, tA [i];}} ’

1 este

2 es

3 a

4 test

Primero, a través de las funciones incorporadas (asort, asorti use) awk 3.1 o posterior soporte

1, asort instrucciones

srcarrlen = asort [srcarr, dscarr] El valor de retorno predeterminado es: la longitud de la matriz original, el parámetro de entrada dscarr asignará la matriz ordenada a dscarr.

El código es el siguiente:

[chengmo @ localhost ~] $ awk ‘ BEGIN {

a [100] = 100;

a [2] = 224;

a [3] = 34;

slen = asort (a, tA);

para (i = 1; i “= slen; i ++)

{print i, tA [i];}

} ’

1 34

2 100

3 224

asort solo ordena los valores, así que descarte la clave original .

2, asorti Instrucciones de uso

El código es el siguiente:

[chengmo @ localhost ~] $ awk ‘ BEGIN {

a [" d " ] = 100;

a [" a "] = 224;

a [" c "] = 34;

slen = asorti (a, tA);

para (i = 1; i “= slen; i ++)

{print i, tA [i], a [tA [i]];}

} ’

1 a 224

2 c 34

3 d 100

asorti ordena los valores clave (tipo de cadena) y generará La nueva matriz se coloca en: tA.

Segundo, enviar para ordenar por canalización

El código es el siguiente:

[chengmo @ localhost ~] $ awk ‘ BEGIN {

a [100 ] = 100;

a [2] = 224;

a [3] = 34;

para (i in a)

{imprimir i, a [i] |  " sort -r -n -k2 ";}

} ’

2 224

100 100

3 34

Por canalización, envíe al programa externo "sort"; sort, -r de big a small, -n sort by number, -k2 sort by column 2. Al lanzar los datos al comando de orden del tercero, todos los problemas se vuelven muy simples. Si ordena – k2 con un valor clave, se convierte en -k1.

El código es el siguiente:

[chengmo @ localhost ~] $ awk ‘ BEGIN {

a [100] = 100;

a [2] = 224;

a [3] = 34;

para (i en a)

{print i, a [i] |  " sort -r -n -k1 ";}

} ’

100 100

3 34

2 224

Tercero, la función de ordenación personalizada

awk estructura de función personalizada:

El código es el siguiente:

funname (p1, p2, p3)

{

staction;

devuelve valor;

} "/p" "p" anterior es: awk representación de función personalizada, los parámetros entrantes predeterminados son por referencia Entrante, el valor devuelto, solo puede ser carácter o numérico. No se puede devolver un tipo de matriz. Si se devuelve el tipo de matriz. Necesidad de pasar por parámetros formales. Consíguelo de nuevo. "/p" "p" awk devuelve el tipo de matriz "/p" "p" awk ‘ prueba de función (ary) {para (i = 0; i "10; i ++) {ary [i] = i;} return i;} BEGIN {n = test (array); para (i = 0; i "n; i ++) {print array [i];}} ’
Previous12Next Total 2 Pages

Copyright © Conocimiento de Windows All Rights Reserved