Accueil·Commandes du terminal

awk

Traitement de texte

Syntaxe

awk '{print $1}' [file]

Découpe chaque ligne en champs et y exécute un petit programme ; $0 est la ligne entière et $1 le premier champ, et le séparateur par défaut est toute suite d'espaces, pas une seule.

Options courantes

OptionSignification
-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

Exemples

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.

Ils sont faits pour être chaînés avec des tubes. Trois commandes reliées sont souvent plus courtes qu’une seule qui fait tout.

Comment lire

  • Les crochets [ ] marquent une partie facultative.
  • Les points de suspension … signifient qu’on peut en mettre plusieurs.
  • Les options sont sensibles à la casse : sur certaines commandes, -r et -R ne font pas la même chose.

Questions fréquentes

Q. Que fait awk ?

Découpe chaque ligne en champs et y exécute un petit programme ; $0 est la ligne entière et $1 le premier champ, et le séparateur par défaut est toute suite d'espaces, pas une seule.

Q. Comment l’écrire ?

awk '{print $1}' [file] — les crochets marquent ce qui est facultatif.

Q. Combien d’options valent la peine ?

Il y en a 4 ici ; la liste complète est dans man awk. Cette commande relève de Traitement de texte.

Commandes liées

page man: man awk