GNU/Linux >> Tutoriales Linux >  >> Ubuntu

10 impresionantes ejemplos de comandos Awk en Linux

Awk es la utilidad más popular que se desarrolla con el fin de extraer datos, procesar textos y, además, crear informes formateados. Es mucho más similar a sed pero más poderoso que sed ya que sed tiene limitaciones en el procesamiento de texto. AWK no tiene un significado específico para su nombre, ya que utiliza la primera letra de sus desarrolladores Alfred Aho, Peter J. Weinberger y Brian Kernighan.

En este artículo, aprenderemos 10 asombrosos comandos awk que debes conocer. Creé y agregué el siguiente conjunto de datos en student.txt como ejemplo. El conjunto de datos tiene 4 columnas donde el primer campo contiene el primer nombre, el segundo campo contiene el segundo nombre, el tercer campo contiene la edad y el último contiene la clase.

Impresión de campo específico usando variable

Awk tiene muchas variables preconstruidas que tienen su respectivo propósito. Usando este comando podemos imprimir todos los datos de campo específicos usando $x donde x se refiere a la posición de numeración del campo.

$ awk '{print $1, $2}' student.txt

COMENZAR Variable

La variable BEGIN se usa para agregar un encabezado o título a los datos resultantes, ya que ejecutó el script antes de procesar los datos. Ayuda en la indexación al formatear las tablas de datos. En el siguiente ejemplo, imprimí un texto como indexación y luego imprimí todos los nombres de los estudiantes.

$ awk 'BEGIN {print "Students : "} {print $1}' student.txt

FIN Variable

END es justo lo contrario de BEGIN ya que ejecuta el script después del procesamiento de datos. Se puede utilizar para el informe final del conjunto de datos. En el siguiente ejemplo, imprimí toda la edad del estudiante y luego imprimí algunos mensajes finales.

$ awk '{print $3}

END {

print "These are student age "

} ' student.txt

Separador de archivos

El espacio y el tabulador son separadores predeterminados del comando awk; sin embargo, podemos separar el texto en función de otros separadores como coma, barra oblicua, etc. Para lograr esto, debemos agregar el indicador -F al comando y el separador proporcionado entre comillas simples. .

$ awk -F':' '{print $1}' /etc/passwd

Ejecutar secuencia de comandos desde un archivo

También podemos ejecutar el script awk desde el archivo, lo que nos brinda la tendencia de crear informes de manera eficiente. Para esto, debe crear el archivo, luego escribir el script y ejecutarlo con el comando awk. Para la demostración, puede crear un archivo con el nombre demo_script y copiar y pegar el siguiente script.

$ vi demo_script

{

sum+=$3

}

END {

print("Sum of all student age is", sum)

}

El comando awk proporciona un indicador -f para ejecutar el script desde el archivo.

$ awk -f demo_script student.txt

Uso de secuencias de comandos múltiples

Podemos ejecutar múltiples scripts usando el punto y coma. En el siguiente ejemplo, imprimí un texto y luego canalicé la salida, con awk e imprimí el resultado modificado.

$ echo "Hello, Dr. John" | awk '{$3="George"; print $0}'

Cuenta el número de líneas

Podemos asignar el número al informe utilizando la variable NR, que es una variable integrada de awk que imprime automáticamente el número de línea en el informe.

$ awk '{print NR "\t" $0}' student.txt

Número de recuento de campos

A veces, mientras preparábamos los datos, olvidamos agregar datos en la columna específica, lo que puede generar irregularidades en el informe. Podemos contar campos usando la variable NF, lo que nos facilita la revisión y organización de los informes.

$ awk '{print NR".",$0 "\n Count=" NF}' student.txt

Si Condición

Podemos usar la condición if para preparar un informe condicional. En el siguiente ejemplo, imprimimos todos los estudiantes cuya edad es menor de 16 años

$ awk '

BEGIN{

print "Student whose age are under 16 are:"

}

{

if($3<16){

print $1

}

}' student.txt

Para Bucle

En el siguiente ejemplo, usamos for loop para imprimir 5 números aleatorios en sucesión. Para generar números aleatorios, utilizaremos la función rand(), que es una función integrada en el sistema. Esta función generará un número aleatorio en decimal, por lo que debemos multiplicar 100 para obtener números aleatorios del 1 al 100.

$ awk 'BEGIN {

for (i = 1; i <= 5; i++){

print int(100 * rand())

}

}'

Conclusión

En este artículo, aprendimos sobre los 10 asombrosos comandos y scripts de awk. Espero que te guste este artículo.


Ubuntu
  1. Ejemplos de comandos sa en Linux

  2. w Ejemplos de comandos en Linux

  3. Ejemplos de comandos ac en Linux

  4. Ejemplos de comandos df en Linux

  5. Ejemplos de comandos du en Linux

10 ejemplos de comandos iftop en Linux

20 impresionantes ejemplos de comandos Nmap en Linux

Comando awk de Linux con 10 ejemplos

Ejemplos de comandos táctiles de Linux

Comando IP de Linux con ejemplos

Ejemplos de comandos id en Linux