Comment lire l'entrée awk de Stdin dans Linux - Partie 7

Comment lire l'entrée awk de Stdin dans Linux - Partie 7

Dans les parties précédentes de la série d'outils AWK, nous avons examiné la lecture des entrées principalement à partir d'un (s) fichier (s), mais que se passe-t-il si vous voulez lire l'entrée de Stdin.

Dans cette partie 7 de la série AWK, nous examinerons quelques exemples où vous pouvez filtrer la sortie d'autres commandes au lieu de lire l'entrée d'un fichier.

Nous allons commencer par l'utilitaire DIR qui fonctionne similaire à la commande LS, dans le premier exemple ci-dessous, nous utilisons la sortie de dir -l Commande comme entrée pour AWK pour imprimer le nom d'utilisateur du propriétaire, le nom de groupe et les fichiers qu'il possède dans le répertoire actuel:

# dir -l | awk 'print $ 3, $ 4, $ 9;' 
Liste des fichiers appartenant à l'utilisateur dans Directory

Jetez un œil à un autre exemple où nous utilisons des expressions awk, ici, nous voulons imprimer des fichiers appartenant à la racine utilisateur en utilisant une expression pour filtrer les chaînes comme dans la commande awk ci-dessous:

# dir -l | awk '$ 3 == "root" print $ 1, $ 3, $ 4, $ $;' 
Lister les fichiers détenus par l'utilisateur root

La commande ci-dessus comprend le (==) Opérateur de comparaison pour nous aider à filtrer les fichiers dans le répertoire actuel qui appartiennent à l'utilisateur racine. Ceci est réalisé en utilisant l'expression 3 $ == ”racine".

Regardons un autre exemple de l'endroit où nous utilisons un opérateur de comparaison awk pour correspondre à une certaine chaîne.

Ici, nous avons utilisé l'utilitaire Cat pour afficher le contenu d'un fichier nommé Tecmint_deals.SMS Et nous voulons voir les offres de type Technologie Seulement, nous exécuterons donc les commandes suivantes:

# chat tecmint_deals.txt # chat tecmint_deals.txt | awk '$ 4 ~ / tech / print' # chat tecmint_deals.txt | awk '$ 4 ~ / tech / print' 
Utilisez l'opérateur de comparaison awk pour faire correspondre la chaîne

Dans l'exemple ci-dessus, nous avons utilisé la valeur ~ / motif / Opérateur de comparaison, mais il y a deux commandes pour essayer de faire ressortir quelque chose de très important.

Lorsque vous exécutez la commande avec le motif technologie rien n'est imprimé car il n'y a pas accord de ce type, mais avec Technologie, vous obtenez des offres de type Technologie.

Soyez donc toujours prudent lorsque vous utilisez cet opérateur de comparaison, il est sensible à la casse comme nous l'avons vu ci-dessus.

Vous pouvez toujours utiliser la sortie d'une autre commande à la place comme entrée pour awk au lieu de lire l'entrée d'un fichier, c'est très simple comme nous l'avons regardé dans les exemples ci-dessus.

J'espère que les exemples étaient suffisamment clairs pour que vous puissiez comprendre, si vous avez des préoccupations, vous pouvez les exprimer par la section des commentaires ci-dessous et n'oubliez pas de vérifier la partie suivante de la série où nous examinerons awk des fonctionnalités telles que variables, Expressions numériques et opérateurs d'affectation.