GNU/Linux >> Tutoriels Linux >  >> Linux

Commande AWK sous Linux/Unix

AWK convient à la recherche et au traitement de modèles. Le script s'exécute pour rechercher un ou plusieurs fichiers afin d'identifier les modèles correspondants et si lesdits modèles effectuent des tâches spécifiques. Dans ce guide, nous examinons la commande AWK Linux et voyons ce qu'elle peut faire.

Quelles opérations AWK peut-il effectuer ?

  • Analyser les fichiers ligne par ligne
  • Diviser chaque ligne d'entrée en champs
  • Comparaison des lignes et des champs d'entrée avec des modèles
  • Exécution d'actions spécifiées sur les lignes correspondantes

Utilité de la commande AWK

  • Modification des fichiers de données
  • Produire des rapports formatés

Concepts de programmation pour la commande awk

  • Formater les lignes de sortie
  • Conditionnel et boucles
  • Opérations arithmétiques et sur les chaînes

Syntaxe AWK

$ awk options 'selection _criteria {action }' input-file > output-file

Pour en savoir plus sur l'utilisation d'AWK, nous allons utiliser le fichier texte appelé file.txt

1ère colonne => Article,
2ème colonne => Modèle
3ème colonne => Pays
4ème colonne => Coût

Exemples de commandes Awk

Imprimer des colonnes spécifiques

Pour imprimer les 2e et 3e colonnes, exécutez la commande ci-dessous.

$ awk '{print $2 "\t" $3}' file.txt

Sortie

Imprimer toutes les lignes d'un fichier

Si vous souhaitez lister toutes les lignes et colonnes d'un fichier, exécutez

$ awk ' {print $0}' file.txt

Sortie

Imprimer toutes les lignes qui correspondent à un motif spécifique

si vous voulez imprimer des lignes qui correspondent à un certain modèle, la syntaxe est comme indiqué

$ awk '/variable_to_be_matched/ {print $0}' file.txt

Par exemple, pour faire correspondre toutes les entrées avec la lettre "o", la syntaxe sera

$ awk '/o/ {print $0}' file.txt

Sortie

Pour faire correspondre toutes les entrées avec la lettre "e"

$ awk '/e/ {print $0}' file.txt

Sortie

Imprimer des colonnes qui correspondent à un modèle spécifique

Lorsque AWK localise une correspondance de modèle, la commande exécute l'intégralité de l'enregistrement. Vous pouvez modifier la valeur par défaut en émettant une instruction pour afficher uniquement certains champs.

Par exemple :

$ awk '/a/ {print $3 "\t" $4}' file.txt

La commande ci-dessus imprime les 3ème et 4ème colonnes où la lettre "a" apparaît dans l'une des colonnes

Sortie

Compter et imprimer le motif correspondant

Vous pouvez utiliser AWK pour compter et imprimer le nombre de lignes pour chaque correspondance de modèle. Par exemple, la commande ci-dessous compte le nombre d'occurrences d'un modèle correspondant apparaît

$ awk '/a/{++cnt} END {print "Count = ", cnt}' file.txt

Sortie

Imprimer des lignes avec plus ou moins d'un nombre de caractères

AWK a une fonction de longueur intégrée qui renvoie la longueur de la chaîne. À partir de la commande $0, la variable stocke la ligne entière et en l'absence d'un bloc de corps, l'action par défaut est prise, c'est-à-dire l'action d'impression. Par conséquent, dans notre fichier texte, si une ligne comporte plus de 18 caractères, la comparaison est vraie et la ligne est imprimée comme indiqué ci-dessous.

$ awk 'length($0) > 20' file.txt

Sortie

Enregistrer la sortie d'AWK dans un autre fichier

Si vous souhaitez enregistrer la sortie de vos résultats, utilisez l'opérateur de redirection>. Par exemple

$ awk '/a/ {print $3 "\t" $4}' file.txt > Output.txt

Vous pouvez vérifier les résultats en utilisant la commande cat comme indiqué ci-dessous

$ cat output.txt

Sortie

Conclusion

AWK est un autre script de programmation simple que vous pouvez utiliser pour manipuler du texte dans des documents ou exécuter des fonctions spécifiques. Les commandes partagées sont quelques-unes ou les nombreuses que vous devez encore connaître ou rencontrer.


Linux
  1. Commande wc Linux

  2. Commande grep Linux

  3. ln Exemples de commandes sous Linux

  4. file Exemples de commandes sous Linux

  5. exemples de commandes tail sous UNIX/Linux

Commande Stat sous Linux

Commande Awk sous Linux

Commande mkdir sous Linux/Unix

Commande Grep sous Linux/UNIX

Commande ls sous Linux/UNIX

commande cp sous Linux/UNIX