Recherche de site Web

Comment lire l'entrée Awk de STDIN sous 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 ou plusieurs fichiers, mais que se passe-t-il si vous souhaitez lire les entrées de STDIN.

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

Nous commencerons par l'utilitaire dir qui fonctionne de manière similaire à la commande ls. Dans le premier exemple ci-dessous, nous utilisons la sortie de la commande dir -l comme entrée pour Awk pour imprimer le nom d'utilisateur, le nom de groupe et les fichiers du propriétaire. /she possède dans le répertoire courant :

dir -l | awk '{print $3, $4, $9;}'

Jetez un œil à un autre exemple dans lequel nous utilisons des expressions awk. Ici, nous souhaitons imprimer les fichiers appartenant à l'utilisateur root 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, $9;} '

La commande ci-dessus inclut l'opérateur de comparaison (==) pour nous aider à filtrer les fichiers du répertoire actuel qui appartiennent à l'utilisateur root. Ceci est réalisé en utilisant l'expression $3== ”root ”.

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

Ici, nous avons utilisé l'utilitaire cat pour afficher le contenu d'un fichier nommé tecmint_deals.txt et nous souhaitons afficher uniquement les offres de type Tech, nous allons donc exécuter l'utilitaire cat. commandes suivantes :

cat tecmint_deals.txt
cat tecmint_deals.txt | awk '$4 ~ /tech/{print}'
cat tecmint_deals.txt | awk '$4 ~ /Tech/{print}'

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

Lorsque vous exécutez la commande avec le modèle tech, rien n'est imprimé car il n'y a pas de deal de ce type, mais avec Tech, vous obtenez des offres de tapez Tech.

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

Vous pouvez toujours utiliser la sortie d'une autre commande comme entrée pour awk au lieu de lire l'entrée d'un fichier, c'est très simple comme nous l'avons vu 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 via la section commentaires ci-dessous et n'oubliez pas de consulter la prochaine partie de la série où nous examinerons les fonctionnalités awk. tels que les variables, les expressions numériques et les opérateurs d'affectation.