accueil > Traitement et recherche de texte > awk

Guide rapide d'awk

Un outil de traitement de flux qui filtre, transforme et agrège les flux de texte en traitant les enregistrements et les champs. Ce guide présente les options générales et les modèles courants basés sur GNU awk (gawk).

Aperçu

awk lit l'entrée en tant qu'enregistrements (par défaut : lignes), les divise par un séparateur de champs (FS), puis applique un modèle/action { ... } pour produire la sortie souhaitée (OFS). Les utilisations courantes incluent l'extraction de colonnes, le filtrage conditionnel, le calcul de sommes/moyennes et la conversion de format.

Principales variables intégrées

Variables intégrées clés qui contrôlent les opérations d'entrée/sortie et le formatage.

  • NR: Numéro de l'enregistrement (ligne) lu jusqu'à présent
  • FNR: Numéro de l'enregistrement dans le fichier actuel
  • NF: Nombre de champs dans l'enregistrement actuel
  • FS: Séparateur de champs d'entrée (par défaut : espace)
  • OFS: Séparateur de champs de sortie (par défaut : espace)
  • RS: Séparateur d'enregistrements (par défaut : nouvelle ligne)
  • ORS: Séparateur d'enregistrements de sortie (par défaut : nouvelle ligne)

Forme de base

awk '패턴 { 액션 }' input.txt
awk -f program.awk input.txt

Transmet le bloc modèle/action en une seule ligne ou un fichier de script avec -f.

Options principales

Options fréquemment utilisées regroupées par situation. Inclut les options compatibles avec gawk.

1) 기본 실행/입력

2) 필드/변수 전달

3) 디버깅/호환(gawk)

4) 도움말/버전

Commande générée :

Essayez de combiner les commandes.

Description:

`awk` Exécute la commande.

Essayez d'exécuter virtuellement les commandes avec l'IA en combinant les options ci-dessus.

Modèles fréquemment utilisés

Extraction de colonnes

awk -F ':' '{ print $1, $3 }' /etc/passwd

Affiche uniquement les 1er et 3ème champs séparés par des deux-points.

Filtre conditionnel

awk '$5 > 100 { print }' data.tsv

Affiche uniquement les enregistrements où la valeur du 5ème champ est supérieure à 100.

Exemple d'agrégation

awk '{ sum += $2 } END { print sum }' data.txt

Somme de la deuxième colonne

Passage de variables et formatage

awk -v OFS=',' '$1=="KEY" { print $1, $2, $3 }' input.txt

Spécifie OFS comme une virgule et affiche uniquement les clés spécifiques.

Conseils pratiques

Le traitement ligne par ligne en flux le rend puissant en combinaison avec les pipes.

  • Les expressions régulières peuvent être utilisées comme séparateur de champs : -F '[,:\t]+'
  • Le programme peut être écrit en plusieurs parties avec plusieurs -e
  • Les scripts longs doivent être séparés avec -f et gérés par Git pour le contrôle de version
  • Ajuster OFS/ORS de manière appropriée pour le format de sortie
  • Pour les grandes entrées, simplifier le pipeline en ne gardant que les opérations minimales nécessaires

commandes associées

Des commandes fonctionnellement similaires ou souvent utilisées ensemble.



Commandes de la même catégorie