cómo funciona la opción vista awk

cómo funciona la opción vista awk

Recientemente me encontré con un awkvistoopción. Puedo ver que está eliminando duplicados en archivos. Me vendría bien alguna aclaración sobre cómo funciona.

cat tes
1
2
3
1
1
1
3
4

con salida vista awk

cat tes | awk '!seen[$0]++'

1
2
3
4

Respuesta1

seenes el nombre arbitrario de una matriz asociativa. No es una opción de ningún tipo. Podrías usar ao bo la mayoría de los otros nombres en su lugar.

El código !seen[$0]++consta de una prueba y un incremento.

Si seen[$0], es decir, el valor del elemento de la matriz asociado con la clave $0, la línea de entrada actual, es cero (o está vacía), entonces el valor booleano de !seen[$0]esverdadero.

Luego se incrementa el valor en la matriz correspondiente a la clave $0, lo que significa que la prueba seráFALSOtodas las demás veces que $0se encuentre el mismo valor de.

El efecto es que la prueba esverdaderola primera vez que se ve una línea particular en la entrada, yFALSOtodos los demás tiempos.

Siempre que se realice una prueba sin acción asociadaverdadero, elpor defectose desencadena la acción. La acción predeterminada es el equivalente a { print }o { print $0 }, que imprime el registro actual, que para todas las cuentas y propósitos en este ejemplo es la línea de entrada actual sin modificar.

información relacionada