AWK: Ejemplos útiles en una sola línea

Extraer un fragmento de texto

Busca y extrae las líneas del fichero passwd desde la primera que contenga 100 hasta la siguiente que contenga 111:

awk '/100/,/111/ { print } /etc/passwd'

Convertir segundos (timestamp) a formato tipo HH:MM:SS (horas:minutos:segundos)

echo - | awk -v "S=SEGUNDOS" '{printf "%02d:%02d:%02d",S/(60*60),S%(60*60)/60,S%60}'

Debemos sustituir SEGUNDOS por el número de segundos a convertir, por ejemplo, para convertir 73180 segundos:

$ echo - | awk -v "S=73180" '{printf "%02d:%02d:%02d",S/(60*60),S%(60*60)/60,S%60}'

20:19:40

Eliminar líneas duplicadas

Muestra SOLO las líneas que NO están duplicadas:

awk '!x[$0]++' fichero

Este comando le dice a awk que lineas mostrar. La variable $0 contiene todo el contenido de una línea y los corchetes son acceso al array. Por lo tanto, para cada línea del archivo, el nodo de la matriz x se incrementa y la línea se imprime si el contenido de ese nodo no (!) estaba previamente establecido.

Imprime líneas de contenido igual en dos columnas

Imprime las lineas en que la primera columna es la misma que la segunda columna :

awk '$1==$2' fichero_2_columnas.txt

Retro

Lugares

Redes

Sistemas

Varios