Shell - Awk Command
Description
Syntax
Syntax of awk command:
Arguments
See the detail of arguments:
| Argument | Définition | Exemple |
|---|---|---|
| -v | Injecter variable dans AWK | awk -v VAR=$VAR '{print VAR}' file.txt |
| -F | Séparateur de champs [Défaut ' '] | awk -F';' '{print $1}' file.csv |
| -f | Les commandes sont lus à partir d'un fichier | awk -f script.awk |
Variables
The awk command have several define variables:
| Variable | Signification | Défaut |
|---|---|---|
| ARGC | Nombre d'arguments de la ligne de commande | - |
| ARGV | Tableau des arguments de la ligne de commnde | - |
| FILENAME | Nom du fichier sur lequel on applique les commandes | - |
| FNR | Nombre d'enregistrements du fichier | - |
| FS | Separateur de champs en entrée | " " |
| NF | Nombre de champs de l'enregistrement courant | - |
| NR | Nombre d'enregistrements deja lu | - |
| OFMT | Format de sortie des nombres | "%.6g" |
| OFS | Separateur de champs pour la sortie | " " |
| ORS | Separateur d'enregistrement pour la sortie | "\n" |
| RLENGTH | Longueur de la chaine trouvée | - |
| RS | Separateur d'enregistrement en entrée | "\n" |
| RSTART | Debut de la chaine trouvée | - |
| SUBSEP | Separateur de subscript | "\034" |
| IGNORECASE | Ignorer la casse | 0 |
Functions
Voici la liste des différentes fonctions pouvant être utilisées sur les chaînes de caractère avec awk.
- s et t représentent des chaînes de caractères
- r une expression régulière
- i et n des entiers
| Fonction | Description |
|---|---|
| gsub(r,s,t) | Sur la chaîne t, remplace toutes les occurrences de r par s |
| index(s,t) | Retourne la position la plus à gauche de la chaîne t dans la chaîne s |
| length(s) | Retourne la longueur de la chaîne s |
| match(s,r) | Retourne l'index ou s correspond à r et positionne RSTART et RLENTH |
| split(s,a,fs) | Split s dans le tableau a sur fs, retourne le nombre de champs |
| sprintf(fmt,liste expressions) | Retourne la liste des expressions formatées suivant fmt |
| sub(r,s,t) | Comme gsub, mais remplace uniquement la première occurrence |
| substr(s,i,n) | Retourne la sous chaîne de s commençant en i et de taille n |
| tolower(s) | Retourne la sous chaîne s en minuscule |
| toupper(s) | Retourne la sous chaîne s en majuscule |
Examples
Basic
Display text from word1 to word2:
Calculate column's sum:
Calculate items number of a column:
Insert external vars:
# Méthode 1
var='word'
awk -v var=$var '$1 == var {print $2}' file.txt
# Méthode 2
awk '/'"$var"'/ {print $2}' file.txt
awk '$1 == "'"$var"'" {print $2}' file.txt
Select a Paragraph :
Do not take into account case:
# Method 1
echo 'LoKo' | awk -v IGNORECASE=1 '/^loko/'
# Method 2
echo 'LoKo' | awk 'tolower($0) ~ /^loko/'
echo 'LoKo' | awk 'toupper($0) ~ /^LOKO/'
Count number of row:
Functions
Do not keep the first raw:
Add several values with convertion of value to TB: