‘[awk]‘! Análisis de 【$0】++‘Principio de deduplicación de datos
Mucha gente conoce awk! El archivo [$0]++' puede eliminar líneas duplicadas del texto, pero no está claro cómo eliminarlas, así que analizaré ese comando por separado aquí.
Primero, necesitamos saber que este comando implica imprimir $0. El comando completo es el siguiente:
Awk determina los siguientes tres casos como "falso" y todos los demás casos como "verdaderos":
El número 0
La cadena vacía ""
Variable no definida, para variable indefinida var, se convierte a una cadena vacía si se requieren operaciones de cadena "", o al número 0 si se requieren operaciones matemáticas. También puedes usar var "" para convertirlo en la cadena vacía "" y var+0 para convertirlo en el número 0.
¡Entonces el principio establecido por awk arriba es el juicio! Un valor [$0]++ Si el valor es verdadero, se imprimirá la línea actual. Si el valor es falso, la línea actual no se imprimirá.
¡Inicia el análisis! a[$0]++, pero primero observe la precedencia de los operadores en awk (de mayor a menor):
Aquí podemos reemplazar el valor de la matriz [$0] con una variable simple, esta es fácil de entender:
Sabemos que el operador a++ incrementa la variable A después de que se agota, por lo que aunque la proporción es ++! Prioridad alta, primero combinada con la variable A, pero no aumentará el valor de la variable A inmediatamente, ¡pero adentro! Después de a, incremente el valor de la variable a. Entiende a través de ejemplos:
Ahora queda claro de un vistazo, para luego sustituirlo en el ejemplo anterior:
El análisis es el siguiente: