AWK: Introducci贸n y ejemplos

AWK

AWK聽es un lenguaje de programaci贸n dise帽ado para procesar datos basados en texto(ficheros, flujos de datos, etc).聽La funci贸n b谩sica de AWK es buscar en los archivos o flujos de datos聽l铆neas con patrones determinados y realizaci贸n de acciones especificas.

Es muy utilizado para procesar la salida de otro comando y realizar tareas m谩s o menos complejas como sustituciones, eliminaciones, comparaciones,… Te da una gran versatilidad para este tipo de tareas.

Sintaxis

# awk 鈥 [condici贸n] { acci贸n } 鈥 fichero
# fichero | awk 鈥 [condici贸n] { acci贸n } 鈥

Ejemplos de AWK

Muestra solo la columna 9 de la salida del comando “ls -ltr *.flar”:
ls -ltr *.flar | awk '{print $9}'

Muestra聽solo la columna 1 utilizando el delimitador 鈥:鈥 de la salida del comando “cat OK_backups.out”:
cat OK_backups.out | awk -F ":" '{print $1}'

Compara dos ficheros. Si la linea COMPLETA se repite, muestra las lineas que solo estan en file1.txt y no estan en file2.txt

awk 'NR == FNR{a[$0];next} !($0 in a)' listado_backup_semanal listado_maquinas

Busca y reemplaza “palabra1” por “palabra2” l铆nea a l铆nea:

awk '{sub(/palabra1/,"palabra2")}; 1' # replace only 1st instance
gawk '{$0=gensub(/palabra1/,"palabra2",4)}; 1' # replace only 4th instance
awk '{gsub(/palabra1/,"palabra2")}; 1' # replace ALL instances in a line

Compara dos ficheros y muestra las lineas COMPLETAS que se repiten en los 2 archivos:

awk 'NR==FNR{a[$0];next} $0 in a' file1 file2

Compara dos ficheros y saca los registros en los que el primer campo es el mismo para los 2 archivos

awk -F: 'NR==FNR{a[$1]=$1;next;}{if ($1 in a) print $0;}' 'OFS=:' file2 file1 > file_repetidos

Compara dos ficheros MEDIANTE EL PRIMER CAMPO y saca solo los registros que se encuentran en file1 y no estan en file2

awk -F: 'NR==FNR{a[$1]=$1;next;}!($1 in a)' file2 file1 > file3

Borrar las l铆neas repetidas de un fichero

awk -F: '!_[$1]++' file1 > file2

Compartir:

This article was written by RoberMB

馃捇OS, 鈽侊笍Cloud, 馃洝锔廋ybersecurity, 鉁堬笍Traveling #Linux, #Ansible, #AWS, #VMware, #Docker 馃彺鈥嶁槧锔 CEH v10, CPHE 馃彺鈥嶁槧锔 ... Always learning, always enjoying.

Leave a Reply

Your email address will not be published. Required fields are marked *