Au-delà de sed, qui permet de modifier directement le contenu ligne par
ligne, il est parfois nécessaire d’extraire des colonnes précises, de
transformer des champs, ou de réaliser des calculs à partir de fichiers plats
comme des logs, des CSV ou des exports structurés. C’est là que la commande
awk devient incontournable. Pensé comme un mini-langage de traitement de
texte, awk permet de manipuler chaque ligne comme un enregistrement et chaque
mot comme un champ. Grâce à sa puissance et sa simplicité, il devient un outil
indispensable pour analyser, transformer et automatiser le traitement de données
textuelles en ligne de commande.
Introduction à awk
Section intitulée « Introduction à awk »La commande awk est un outil de traitement de texte conçu pour lire des
fichiers ligne par ligne, découper chaque ligne en champs (colonnes), et
appliquer des actions conditionnelles sur ces champs. Son nom vient des
initiales de ses créateurs : Aho, Weinberger et Kernighan.
Contrairement à grep (filtrage) ou sed (modification ligne à ligne), awk
agit comme un mini-langage de programmation. Il permet :
- d’extraire des champs spécifiques,
- de filtrer des lignes selon des règles complexes,
- de réaliser des calculs (sommes, moyennes, comptages),
- de reformater ou restructurer des fichiers texte.
Un exemple simple pour afficher les colonnes 1 et 3 d’un fichier séparé par des espaces :
awk '{ print $1, $3 }' fichier.txtOu, avec un fichier CSV (séparateur ;) :
awk -F';' '{ print $2 }' fichier.csvEt pour calculer la somme d’une colonne :
awk '{ total += $3 } END { print total }' fichier.txtAvec awk, chaque ligne devient un enregistrement à traiter, chaque mot un
champ manipulable et chaque fichier une source de données structurées à
analyser ou transformer en temps réel.
Syntaxe de base
Section intitulée « Syntaxe de base »La syntaxe de awk repose sur le principe suivant : pour chaque ligne du
fichier, si un motif est vrai, alors on exécute une action. Cette
syntaxe, très naturelle, permet d’écrire des commandes puissantes en quelques
caractères seulement.
Structure générale
Section intitulée « Structure générale »awk 'motif { action }' fichier- motif : condition pour exécuter l’action (optionnelle)
- action : opération à réaliser sur la ligne (affichage, calcul, etc.)
Si aucun motif n’est précisé, l’action est appliquée à chaque ligne.
Variables implicites
Section intitulée « Variables implicites »awk propose plusieurs variables intégrées très utiles :
$0: la ligne entière$1,$2, … : les champs de la ligne (colonne 1, 2, etc.)NF: nombre de champs dans la ligneNR: numéro de la ligne en coursFS: séparateur de champs (par défaut, espace ou tabulation)
Exemples simples
Section intitulée « Exemples simples »Afficher toutes les lignes d’un fichier :
awk '{ print }' fichier.txtAfficher la 2ᵉ colonne uniquement :
awk '{ print $2 }' fichier.txtAfficher la dernière colonne :
awk '{ print $NF }' fichier.txtChanger le séparateur de champs (ex : fichier CSV) :
awk -F';' '{ print $1, $3 }' fichier.csvAfficher le numéro de ligne suivi du contenu :
awk '{ print NR, $0 }' fichier.txtGrâce à cette syntaxe, awk devient rapidement un outil de transformation, de
lecture et d’analyse de données, tout en restant compact et intuitif.
Extraction et filtrage de données
Section intitulée « Extraction et filtrage de données »L’un des usages les plus courants de awk est d’extraire des colonnes
spécifiques d’un fichier texte et de filtrer les lignes selon des critères
simples ou complexes. Cela permet de parcourir rapidement un fichier structuré
et d’en isoler les informations utiles.
Afficher une ou plusieurs colonnes
Section intitulée « Afficher une ou plusieurs colonnes »Afficher la première colonne :
awk '{ print $1 }' fichier.txtAfficher les colonnes 1 et 3 :
awk '{ print $1, $3 }' fichier.txtAfficher la dernière colonne :
awk '{ print $NF }' fichier.txtFiltrer une ligne selon une valeur
Section intitulée « Filtrer une ligne selon une valeur »Afficher les lignes dont la 3e colonne vaut exactement “OK” :
awk '$3 == "OK"' fichier.txtAfficher celles dont la 2e colonne est supérieure à 100 :
awk '$2 > 100' fichier.txtUtiliser une condition ET/OU
Section intitulée « Utiliser une condition ET/OU »Afficher les lignes où la colonne 2 est > 100 et la colonne 4 contient “valide” :
awk '$2 > 100 && $4 == "valide"' fichier.txtAfficher les lignes où la colonne 1 est “admin” ou “root” :
awk '$1 == "admin" || $1 == "root"' fichier.txtFiltrer avec une expression régulière
Section intitulée « Filtrer avec une expression régulière »Afficher les lignes dont la colonne 1 commence par “user” :
awk '$1 ~ /^user/' fichier.txtAfficher celles où la colonne 3 ne contient pas “erreur” :
awk '$3 !~ /erreur/' fichier.txtAfficher les lignes entre deux motifs
Section intitulée « Afficher les lignes entre deux motifs »Afficher de la ligne contenant “START” à celle contenant “END” :
awk '/START/,/END/' fichier.txtGrâce à ces fonctionnalités, awk permet de naviguer, trier, extraire ou
surveiller des données textuelles structurées avec une très grande souplesse.
Calculs et agrégations
Section intitulée « Calculs et agrégations »awk est particulièrement efficace pour effectuer des opérations
mathématiques sur les données textuelles : sommes, moyennes, minima, maxima,
et même des calculs conditionnels. Ces fonctionnalités permettent d’analyser
rapidement le contenu d’un fichier numérique.
Somme d’une colonne
Section intitulée « Somme d’une colonne »Additionner toutes les valeurs de la colonne 2 :
awk '{ total += $2 } END { print total }' fichier.txtMoyenne d’une colonne
Section intitulée « Moyenne d’une colonne »Calculer la moyenne des valeurs numériques d’une colonne :
awk '{ total += $3; n++ } END { print total / n }' fichier.txtTrouver un minimum ou un maximum
Section intitulée « Trouver un minimum ou un maximum »Trouver la valeur maximale de la colonne 4 :
awk 'NR == 1 || $4 > max { max = $4 } END { print max }' fichier.txtTrouver la valeur minimale :
awk 'NR == 1 || $4 < min { min = $4 } END { print min }' fichier.txtComptage de lignes selon une condition
Section intitulée « Comptage de lignes selon une condition »Compter les lignes dont la colonne 3 vaut “OK” :
awk '$3 == "OK" { count++ } END { print count }' fichier.txtMoyenne conditionnelle
Section intitulée « Moyenne conditionnelle »Moyenne des lignes où le champ 2 est supérieur à 50 :
awk '$2 > 50 { total += $2; n++ } END { if (n > 0) print total / n }' fichier.txtCalculs entre colonnes
Section intitulée « Calculs entre colonnes »Calculer la différence entre deux colonnes et afficher la ligne :
awk '{ diff = $3 - $2; print $1, diff }' fichier.txtAvec ces opérations, awk devient un véritable moteur d’analyse statistique
en ligne de commande, idéal pour examiner des rapports, des mesures systèmes
ou des exports CSV chiffrés.
Formatage de la sortie
Section intitulée « Formatage de la sortie »awk permet de personnaliser l’affichage des résultats avec une grande finesse
grâce à la commande printf, qui offre un meilleur contrôle que print
sur l’alignement, le format numérique ou la structure des données affichées.
Différence entre print et printf
Section intitulée « Différence entre print et printf »printajoute automatiquement un espace entre les champs et un retour à la ligneprintfpermet de formater précisément la sortie, mais ne gère ni espaces ni retours à la ligne automatiquement
Syntaxe de base de printf
Section intitulée « Syntaxe de base de printf »awk '{ printf "%s : %s\n", $1, $2 }' fichier.txt%s: chaîne de caractères%d: entier%f: nombre à virgule flottante\n: retour à la ligne
Alignement des colonnes
Section intitulée « Alignement des colonnes »Aligner à gauche (%-) ou à droite (%) avec une largeur fixe :
awk '{ printf "%-10s | %5d\n", $1, $2 }' fichier.txtAffiche la première colonne sur 10 caractères à gauche et la seconde sur 5 caractères à droite.
Afficher des nombres avec précision
Section intitulée « Afficher des nombres avec précision »Limiter à 2 décimales :
awk '{ printf "%.2f\n", $2 }' fichier.txtAjout de titres et de séparateurs
Section intitulée « Ajout de titres et de séparateurs »Afficher une entête et un tableau structuré :
awk 'BEGIN { printf "%-10s | %s\n", "Nom", "Valeur"; print "--------------------" } { printf "%-10s | %s\n", $1, $2 }' fichier.txtAvec BEGIN, on peut afficher des lignes avant le traitement du fichier.
En combinant printf et les variables d’awk, on peut produire des rapports
lisibles, alignés, prêts à être copiés ou intégrés dans un fichier HTML, CSV ou
Markdown, ce qui rend l’outil encore plus précieux pour l’analyse.
Expressions régulières
Section intitulée « Expressions régulières »Comme grep ou sed, awk prend en charge les expressions régulières pour
filtrer ou analyser les lignes de manière avancée. On les utilise généralement
avec les opérateurs ~ (correspondance) ou !~ (non-correspondance).
Correspondance avec ~
Section intitulée « Correspondance avec ~ »Afficher les lignes dont la première colonne commence par “admin” :
awk '$1 ~ /^admin/' fichier.txtAfficher les lignes dont la troisième colonne contient “OK” :
awk '$3 ~ /OK/' fichier.txtNégation avec !~
Section intitulée « Négation avec !~ »Afficher les lignes qui ne contiennent pas “erreur” dans la colonne 4 :
awk '$4 !~ /erreur/' fichier.txtClasses de caractères
Section intitulée « Classes de caractères »Afficher les lignes dont la colonne 2 contient un chiffre :
awk '$2 ~ /[0-9]/' fichier.txtAfficher les lignes où la première colonne est une adresse IP :
awk '$1 ~ /^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$/' fichier.txtMotifs combinés avec && ou ||
Section intitulée « Motifs combinés avec && ou || »Afficher les lignes dont la colonne 2 contient “start” et la colonne 3 “ok” :
awk '$2 ~ /start/ && $3 ~ /ok/' fichier.txtExpressions régulières dans un BEGIN ou END
Section intitulée « Expressions régulières dans un BEGIN ou END »On peut aussi préparer un motif à l’avance :
awk 'BEGIN { motif="^[A-Z]+" } $1 ~ motif' fichier.txtGrâce à ces expressions régulières, awk peut filtrer des motifs complexes,
gérer des formats variables et se montrer extrêmement puissant pour analyser des
fichiers non structurés ou semi-structurés.
Fonctions et variables personnalisées
Section intitulée « Fonctions et variables personnalisées »awk est un vrai mini-langage de programmation, ce qui signifie qu’on peut
déclarer ses propres variables et fonctions pour rendre les traitements plus
lisibles, réutilisables ou structurés. Cela permet de transformer des
expressions complexes en blocs simples et maintenables.
Déclaration de variables
Section intitulée « Déclaration de variables »Les variables peuvent être utilisées et modifiées librement :
awk '{ total += $2 } END { print "Total :", total }' fichier.txtOn peut aussi déclarer des variables dans un bloc BEGIN :
awk 'BEGIN { taux = 0.2 } { print $1, $2 * taux }' fichier.txtDéfinir une fonction
Section intitulée « Définir une fonction »Une fonction awk est définie avec la syntaxe :
function nom_fonction(arg1, arg2) { return arg1 + arg2}Exemple : fonction de calcul de TVA
awk 'function tva(prix, taux) { return prix * taux}{ print $1, tva($2, 0.2) }' fichier.txtRéutilisation dans un bloc END
Section intitulée « Réutilisation dans un bloc END »On peut appeler des fonctions dans le traitement final :
awk 'function moyenne(total, n) { return n > 0 ? total / n : 0}{ somme += $2; n++ }END { print "Moyenne :", moyenne(somme, n) }' fichier.txtPortée des variables
Section intitulée « Portée des variables »Les variables déclarées en dehors d’une fonction sont globales. Celles passées dans une fonction sont locales, sauf si on les modifie directement dans le corps du programme.
Les fonctions personnalisées rendent awk encore plus puissant pour les
traitements complexes, notamment dans les scripts longue durée, les
fichiers multi-colonnes, ou les opérations conditionnelles répétitives.
Tableaux associatifs
Section intitulée « Tableaux associatifs »L’un des atouts les plus puissants de awk est sa prise en charge des
tableaux associatifs (aussi appelés “dictionnaires”). Contrairement aux
tableaux classiques, ils utilisent des chaînes de caractères comme clés, ce
qui les rend parfaits pour regrouper ou compter des données par catégorie.
Compter les occurrences d’un champ
Section intitulée « Compter les occurrences d’un champ »Par exemple, pour compter le nombre de lignes par utilisateur (colonne 1) :
awk '{ utilisateurs[$1]++ } END { for (u in utilisateurs) print u, utilisateurs[u] }' fichier.txtAdditionner par groupe
Section intitulée « Additionner par groupe »Additionner la colonne 3 pour chaque valeur unique de la colonne 2 :
awk '{ total[$2] += $3 } END { for (groupe in total) print groupe, total[groupe] }' fichier.txtTri par catégorie (tri externe avec sort)
Section intitulée « Tri par catégorie (tri externe avec sort) »awk '{ nb[$1]++ } END { for (nom in nb) print nom, nb[nom] }' fichier.txt | sort -k2 -nUtiliser une clé combinée
Section intitulée « Utiliser une clé combinée »On peut combiner plusieurs colonnes comme clé :
awk '{ cle = $1 "-" $2; stats[cle]++ } END { for (c in stats) print c, stats[c] }' fichier.txtValeur par défaut et vérification de clé
Section intitulée « Valeur par défaut et vérification de clé »Tester si une clé existe :
awk '{ if (!($1 in comptage)) comptage[$1] = 0; comptage[$1]++ } END { for (k in comptage) print k, comptage[k] }' fichier.txtLes tableaux associatifs transforment awk en moteur de regroupement et
d’agrégation, très utile pour analyser des logs, faire des statistiques
simples ou générer des résumés dynamiques à partir de données brutes.
Écriture de scripts awk complets
Section intitulée « Écriture de scripts awk complets »Lorsque les traitements deviennent complexes, il est plus lisible et plus
pratique d’écrire un script awk complet dans un fichier dédié. Cela permet
de structurer son code avec des blocs BEGIN, END, des fonctions et de
faciliter la réutilisation dans d’autres contextes.
Structure d’un script awk
Section intitulée « Structure d’un script awk »Un script awk peut comporter trois blocs principaux :
BEGIN { # Initialisation FS = ";" print "Nom | Total"}
{ total[$1] += $2}
END { for (nom in total) printf "%-10s | %d\n", nom, total[nom]}Ce script :
- définit le séparateur de champs (
FS) - agrège les valeurs numériques par utilisateur
- affiche un rapport final formaté
Sauvegarder le script dans un fichier
Section intitulée « Sauvegarder le script dans un fichier »Enregistrez le code dans un fichier nommé par exemple rapport.awk.
Lancer le script avec awk -f
Section intitulée « Lancer le script avec awk -f »awk -f rapport.awk fichier.csvAjouter un shebang pour exécution directe
Section intitulée « Ajouter un shebang pour exécution directe »Débuter le fichier par :
#!/usr/bin/awk -fPuis rendre le fichier exécutable :
chmod +x rapport.awk./rapport.awk fichier.csvIntérêt des scripts .awk
Section intitulée « Intérêt des scripts .awk »- Lisibilité et maintenabilité du code
- Facilité de test et de versioning (Git, etc.)
- Réutilisation dans des pipelines automatisés
Les scripts awk sont idéaux pour les tâches d’analyse régulières, les
rapports dynamiques, ou les traitements batch sur de gros volumes de
données structurées.
Édition de fichiers plats et CSV
Section intitulée « Édition de fichiers plats et CSV »awk est particulièrement adapté à la manipulation de fichiers structurés
comme les fichiers CSV, TSV ou les fichiers plats issus de bases de
données ou d’exports automatisés. Il permet d’extraire, transformer ou
reformater les champs facilement.
Définir un séparateur de champs
Section intitulée « Définir un séparateur de champs »Par défaut, awk considère que les champs sont séparés par des espaces ou des
tabulations. Pour un fichier CSV avec ; :
awk -F';' '{ print $1, $3 }' fichier.csvPour un fichier TSV (tabulations), utilisez :
awk -F'\t' '{ print $2 }' fichier.tsvNettoyer une colonne spécifique
Section intitulée « Nettoyer une colonne spécifique »Par exemple, supprimer les guillemets dans la colonne 3 :
awk -F';' '{ gsub(/"/, "", $3); print $3 }' fichier.csvSupprimer une colonne
Section intitulée « Supprimer une colonne »Supprimer la 2e colonne et réafficher les autres :
awk '{ $2=""; print }' fichier.txtÀ noter : cela conserve l’espace entre les colonnes
Convertir un fichier CSV en TSV
Section intitulée « Convertir un fichier CSV en TSV »awk -F';' 'BEGIN { OFS="\t" } { print $1, $2, $3 }' fichier.csvRéordonner les colonnes
Section intitulée « Réordonner les colonnes »Afficher la colonne 3, puis la 1, puis la 2 :
awk -F';' '{ print $3, $1, $2 }' fichier.csvAjouter une colonne calculée
Section intitulée « Ajouter une colonne calculée »Par exemple, ajouter un total en additionnant les colonnes 2 et 3 :
awk -F';' 'BEGIN { OFS=";" } { print $0, $2 + $3 }' fichier.csvawk offre une solution rapide et portable pour préparer des données,
nettoyer des exports, ou automatiser la transformation de fichiers
structurés sans passer par un tableur ou un script Python
complet.
Bonnes pratiques
Section intitulée « Bonnes pratiques »Pour tirer le meilleur parti de awk dans vos scripts ou en ligne de commande,
voici quelques bonnes pratiques qui facilitent la lisibilité, la maintenance et
la robustesse de vos traitements.
Toujours définir explicitement le séparateur (FS)
Section intitulée « Toujours définir explicitement le séparateur (FS) »Même si l’espace est le séparateur par défaut, mieux vaut le définir clairement, surtout pour les fichiers structurés :
awk 'BEGIN { FS=";" } { print $2 }' fichier.csvUtiliser BEGIN et END pour structurer
Section intitulée « Utiliser BEGIN et END pour structurer »Utilisez BEGIN pour les initialisations et END pour les bilans :
awk 'BEGIN { print "Début" } { print $1 } END { print "Fin" }' fichier.txtNommer clairement vos variables
Section intitulée « Nommer clairement vos variables »Évitez les noms comme a, b, ou x : préférez des noms explicites comme
total, compteur, moyenne.
awk '{ total += $2 } END { print "Total :", total }'Tester vos commandes avec un extrait de fichier
Section intitulée « Tester vos commandes avec un extrait de fichier »Utilisez head, tail, ou less pour tester vos traitements sur quelques
lignes avant de les appliquer à un fichier complet :
head -n 20 fichier.csv | awk -F';' '{ print $1, $2 }'Utiliser des scripts .awk pour les traitements longs
Section intitulée « Utiliser des scripts .awk pour les traitements longs »Plutôt que d’écrire des blocs complexes dans une seule ligne :
- Créez un fichier
script.awk - Ajoutez un shebang (
#!/usr/bin/awk -f) si nécessaire - Rappelez-le avec
awk -f script.awk fichier.txt
Ajouter des commentaires
Section intitulée « Ajouter des commentaires »Comme dans tout script, commentez les parties clés :
# Calcul du total par produit{ total[$1] += $3 }Anticiper les lignes vides ou mal formées
Section intitulée « Anticiper les lignes vides ou mal formées »Protégez vos traitements avec des conditions :
awk 'NF > 0 { print $1 }' fichier.txtEn appliquant ces bonnes pratiques, vous ferez de awk un outil fiable et
maintenable, aussi puissant dans des scripts d’automatisation que dans une
analyse ponctuelle sur un terminal.
Exercices pratiques : mettre en application vos connaissances
Section intitulée « Exercices pratiques : mettre en application vos connaissances »Vous avez maintenant une bonne compréhension de la commande awk et de ses
fonctionnalités. Pour aller plus loin, il est essentiel de pratiquer et de
mettre en application vos connaissances. La meilleure façon d’apprendre est
d’expérimenter par vous-même, de tester différentes commandes et de découvrir
les subtilités de awk en manipulant des fichiers texte.
Pour cela, je vous propose de réaliser une série d’exercices pratiques. Je vous
invite à vous rendre sur le dépôt GitHub suivant, où vous trouverez une série de
d’excercies spécialement conçus pour vous aider à maîtriser la commande
awk et à vous familiariser avec ses différentes options et fonctionnalités.
👉 Travaux pratiques : TP 02-3 : Manipuler des fichiers texte avec awk
Ces exercices couvrent notamment :
- Extraction de colonnes
- Filtrage de données
- Manipulation de variables intégrées
- Formatage des résultats
- Traitement de plusieurs fichiers
- Création de scripts awk
Ensuite vous serez invitée à réaliser un challenge pour mettre en pratique
vos compétences nouvellement acquises. Ce challenge vous permettra de tester vos
connaissances et de vous familiariser avec l’utilisation de awk dans des
situations réelles.
Pourquoi pratiquer ?
L’apprentissage des commandes Linux repose sur la répétition et l’expérimentation. En travaillant sur ces TP :
- Vous gagnez en confiance avec la ligne de commande
- Vous découvrez des cas d’usage concrets
- Vous développez des réflexes indispensables en environnement professionnel
Clonez le dépôt ou suivez directement les consignes en ligne, puis lancez-vous !
Contrôle de connaissances
Section intitulée « Contrôle de connaissances »Contrôle de connaissances
Validez vos connaissances avec ce quiz interactif
Informations
- Le chronomètre démarre au clic sur Démarrer
- Questions à choix multiples, vrai/faux et réponses courtes
- Vous pouvez naviguer entre les questions
- Les résultats détaillés sont affichés à la fin
Lance le quiz et démarre le chronomètre
Vérification
(0/0)Profil de compétences
Quoi faire maintenant
Ressources pour progresser
Des indices pour retenter votre chance ?
Nouveau quiz complet avec des questions aléatoires
Retravailler uniquement les questions ratées
Retour à la liste des certifications
Conclusion
Section intitulée « Conclusion »La commande awk est bien plus qu’un simple extracteur de colonnes : c’est
un langage de traitement de texte structuré, capable d’automatiser
l’analyse, la transformation et la présentation de données issues de fichiers
plats. Grâce à sa syntaxe concise, sa logique ligne par ligne et ses fonctions
avancées comme les tableaux ou les scripts complets, awk devient un allié
puissant pour toutes les tâches de manipulation de texte en ligne de commande.
FAQ - Questions Fréquemment Posées
Section intitulée « FAQ - Questions Fréquemment Posées »La commande awk est un outil en ligne de commande qui permet d'analyser, transformer et formater des fichiers texte structurés. Elle lit chaque ligne, découpe en colonnes (champs) et applique des actions conditionnelles, ce qui la rend idéale pour traiter des logs, des CSV ou des exports de données.
Pour extraire une colonne, on utilise la syntaxe awk '{ print $n }'. Par exemple, awk '{ print $2 }' fichier.txt affiche la deuxième colonne. Si le fichier utilise un autre séparateur, ajoutez -F, comme -F';' pour un CSV.
On peut filtrer en utilisant une expression régulière : awk '/motif/' fichier.txt. Pour filtrer selon une colonne précise : awk '$3 == "OK"' fichier.txt affiche les lignes où la troisième colonne est 'OK'.
awk permet de calculer des sommes, moyennes ou autres opérations. Exemple : awk '{ total += $2 } END { print total }' additionne les valeurs de la deuxième colonne.
Pour passer une variable du shell à awk, utilisez l'option -v. Exemple : awk -v val="$var" '{ print val, $1 }' fichier.txt permet d'utiliser une variable externe dans awk.
La commande printf permet de contrôler le format de sortie. Exemple : awk '{ printf "%-10s | %.2f\n", $1, $2 }' aligne le premier champ à gauche et le second avec 2 décimales.
Oui, awk peut traiter plusieurs fichiers listés à la suite : awk '{ print FILENAME, $0 }' fichier1 fichier2 affiche chaque ligne précédée du nom du fichier source.
awk prend en charge les tableaux associatifs pour regrouper ou compter des données. Exemple : awk '{ tab[$1]++ } END { for (k in tab) print k, tab[k] }' compte les occurrences du premier champ.
Pour des traitements complexes, vous pouvez écrire un script awk dans un fichier (ex : script.awk) et l'exécuter avec awk -f script.awk fichier.txt. Cela rend le code plus lisible et réutilisable.
Pour traiter des CSV, spécifiez le séparateur avec -F. Exemple : awk -F',' '{ print $1, $2 }' fichier.csv. Vous pouvez aussi nettoyer des champs avec gsub, par exemple pour supprimer les guillemets.
awk permet d'utiliser des regex avec ~ ou !~. Par exemple, awk '$1 ~ /^user/' affiche les lignes dont le premier champ commence par 'user'.
Parmi les variables intégrées : $0 (ligne entière), $1, $2… (champs), NF (nombre de champs), NR (numéro de ligne), FILENAME (nom du fichier en cours). Ces variables facilitent l'analyse des fichiers.