Inicio·Comandos de terminal

awk

Procesado de texto

Uso

awk '{print $1}' [file]

Divide cada línea en campos y ejecuta un pequeño programa; $0 es la línea entera y $1 el primer campo, y el separador por defecto es cualquier serie de espacios, no uno solo.

Opciones habituales

OpciónSignificado
-FSet the field separator, as in -F,
-vPass a shell value in as an awk variable
-fRead the program from a file
$0The whole line; $1 is the first field, NF the field count

Ejemplos

awk -F, '{print $2}' data.csv

Second column of a comma-separated file.

awk '$3 > 100' access.log

Only the rows whose third field exceeds 100.

awk '{s+=$1} END {print s}' nums.txt

Adds up the first column.

Están hechos para encadenarse con tuberías. Tres comandos unidos suelen ser más cortos que uno que lo haga todo.

Cómo leerlo

  • Los corchetes [ ] marcan una parte que puedes omitir.
  • Los puntos suspensivos … indican que puedes poner varios.
  • Las opciones distinguen mayúsculas: en algunos comandos -r y -R no hacen lo mismo.

Preguntas

Q. ¿Qué hace awk?

Divide cada línea en campos y ejecuta un pequeño programa; $0 es la línea entera y $1 el primer campo, y el separador por defecto es cualquier serie de espacios, no uno solo.

Q. ¿Cómo se escribe?

awk '{print $1}' [file] — los corchetes marcan lo que puedes omitir.

Q. ¿Cuántas opciones vale la pena saber?

Aquí van 4; la lista completa está en man awk. Este comando está en Procesado de texto.

Comandos relacionados

página man: man awk