awk#

El segundo comando que vemos aquí, awk, es un poco más sofisticado a la hora de hacer búsqueda de patrones de texto. Vamos a poner un ejemplo:

echo "Paso 0   Energía 10.4" > Experimento_626.oup
echo "Paso 0   Temperatura 303  Distancia 8.2" >> Experimento_626.oup
echo "Paso 1   Energía 10.2" >> Experimento_626.oup
echo "Paso 1   Temperatura 300  Distancia 8.1" >> Experimento_626.oup
echo "Paso 2   Energía 10.5" >> Experimento_626.oup
echo "Paso 2   Temperatura 306  Distancia 8.0" >> Experimento_626.oup
echo "Paso 3   Energía 10.1" >> Experimento_626.oup
echo "Paso 3   Temperatura 299  Distancia 7.8" >> Experimento_626.oup
echo "Paso 4   Energía 10.8" >> Experimento_626.oup
echo "Paso 4   Temperatura 302  Distancia 7.6" >> Experimento_626.oup
echo "Paso 5   Energía 10.1" >> Experimento_626.oup
echo "Paso 5   Temperatura 304  Distancia 7.5" >> Experimento_626.oup

Filtremos, como primer caso, según el número de campos. Antes de nada usemos awk para sacar por pantalla el número de campos por línea después de las dos primeras columnas

awk '{print $1, $2, NF}' Experimento_626.oup

Filtremos entonces las líneas que contienen sólo 4 campos:

awk '{if (NF==4) print $0}' Experimento_626.oup

Ahora, como último ejemplo que ilustra para qué puedes emplear awk, filtremos las líneas en las que existe el patrón Distancia y su valor es menor o igual que 8.0, e imprimamos dicho valor precedido únicamente del índice de paso:

awk '/Distancia/ {if ($6<=8.0) print $2, $6}' Experimento_626.oup