Ejemplos AWK en una sola línea

__CAMINO__
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.

Modificado el 31 Enero, 2017
   

Compartiendo conocimiento desde 1995 - I.M.D. I.M.D.