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