Cómo usar AWK para imprimir campos y columnas en el archivo

Cómo usar AWK para imprimir campos y columnas en el archivo

En esta parte de nuestra serie de comandos de Linux AWK, echaremos un vistazo a una de las características más importantes de Asombrar, que es edición de campo.

Es bueno saber que Asombrar divide automáticamente las líneas de entrada que se les proporcionan en los campos, y un campo puede definirse como un conjunto de caracteres que están separados de otros campos por un separador de campo interno.

AWK Fields y columnas

Si está familiarizado con el UNIX/Linux o realiza la programación de Shell Bash, entonces debe saber qué separador de campo interno (IFS) variable es. Los IFS predeterminados en AWK son pestaña y espacio.

Así es como funciona la idea de separación de campo en Asombrar: Cuando se encuentra con una línea de entrada, de acuerdo con el IFS definido, el primer conjunto de caracteres es el campo uno, al que se accede usando $ 1, El segundo conjunto de caracteres es el campo dos, al que se accede usando $ 2, El tercer conjunto de caracteres es el campo tres, al que se accede usando $ 3 y así sucesivamente hasta el último conjunto de personajes.

Para comprender mejor esta edición de campo AWK, echemos un vistazo a los ejemplos a continuación:

Ejemplo 1: He creado un archivo de texto llamado tecmintinfo.TXT.

# VI TECMINTINFO.txt # cat tecmintinfo.TXT 
Crear archivo en Linux

Luego desde la línea de comando, intento imprimir el primero, segundo y tercero campos del archivo tecmintinfo.TXT Usando el comando a continuación:

$ awk '// imprimir $ 1 $ 2 $ 3' tecMintinfo.TXT Tecmenta.Comisthe 

De la salida anterior, puede ver que los caracteres de los primeros tres campos se imprimen en función del IFS definido que es espacio:

  1. Campo uno que es "Tecmint.com " se accede usando $ 1.
  2. Campo dos que es "es" se accede usando $ 2.
  3. Campo tres que es "el" se accede usando $ 3.

Si ha notado en la salida impresa, los valores de campo no están separados y así es como se comporta la impresión de forma predeterminada.

Para ver la salida claramente con el espacio entre los valores de campo, debe agregar (,) operador de la siguiente manera:

$ awk '// imprimir $ 1, $ 2, $ 3;  'TecMintinfo.TXT Tecmenta.com es el 

Una cosa importante a tener en cuenta y siempre recordar es que el uso de ps en Asombrar es diferente de su uso en las secuencias de comandos.

Bajo scripting de concha ps se usa para acceder al valor de las variables mientras está en Asombrar ps Se usa solo cuando se accede al contenido de un campo pero no para acceder al valor de las variables.

Ejemplo 2: Echemos un vistazo a otro ejemplo usando un archivo que contiene varias líneas llamadas my_shoping.lista.

No hay item_name unit_price precio 1 mouse #20,000 1 #20,000 2 monitor #500,000 1 #500,000 3 Ram_chips #150,000 2 #300,000 4 Ethernet_cables #30,000 4 #120,000 

Di que solo querías imprimir Precio unitario De cada elemento en la lista de compras, deberá ejecutar el comando a continuación:

$ awk '// imprimir $ 2, $ 3' my_shopping.TXT  Item_name unit_price Mouse #20,000 Monitor #500,000 Ram_chips #150,000 Ethernet_cables #30,000 

Asombrar También tiene un printf El comando que lo ayuda a formatear su salida es una buena manera, ya que puede ver que la salida anterior no está lo suficientemente clara.

Usando printf Para formatear la salida del Nombre del árticulo y Precio unitario:

$ awk '// printf " %-10s %s \ n", $ 2, $ 3' my_shopping.TXT Item_name unit_price Mouse #20,000 Monitor #500,000 Ram_chips #150,000 Ethernet_cables #30,000 

Resumen

La edición de campo es muy importante cuando se usa Asombrar Para filtrar texto o cadenas, le ayuda a obtener datos particulares en columnas en una lista. Y siempre recuerde que el uso de ps operador en Asombrar es diferente de la de las secuencias de comandos.

Espero que el artículo haya sido útil para usted y para cualquier información adicional requerida o preguntas, puede publicar un comentario en la sección de comentarios.