Top 10 Exemples de commandes AWW AWK

Top 10 Exemples de commandes AWW AWK
La commande awk est un outil puissant pour traiter les données. Il obtient des données d'entrée, la manipule et donne des résultats en sortie standard. Diverses opérations peuvent être effectuées sur des lignes et des colonnes d'un fichier.

Connaître l'essentiel de la commande «awk» est très important lorsqu'il s'agit de traiter efficacement les données, et ce post couvre les principales caractéristiques de la commande «awk». Vérifions d'abord la syntaxe:

$ awk [options] [fichier]

Certaines des options couramment utilisées sont données dans le tableau ci-dessous:

Option Description
-F Pour spécifier un séparateur de fichiers
-F Spécifiez le fichier qui contient le script "awk"
-V Pour attribuer une variable

Jetons un coup d'œil à quelques exemples sur l'utilisation de la commande «awk», et pour une démonstration, j'ai fait un fichier texte du nom de fichier de test.SMS:

Comment imprimer une colonne d'un fichier avec la commande awk?

La commande «awk» peut être utilisée pour obtenir une colonne spécifique du fichier texte. Pour imprimer le contenu de l'utilisation du fichier:

$ Cat TestFile.SMS

Maintenant, pour imprimer la deuxième colonne du fichier, utilisez:

$ awk 'print $ 2' TestFile.SMS

Pour imprimer plus d'un champ, utilisez la commande:

$ awk 'print $ 1, $ 2, $ 3' testfile.SMS

Si vous n'utilisez pas la virgule «», alors la sortie sera sans espaces:

$ awk 'print $ 1 $ 2 $ 3' TestFile.SMS

Comment utiliser l'expression régulière avec la commande awk:

Pour correspondre aux chaînes ou à toute expression, nous utilisons des barres obliques «//», par exemple, si vous souhaitez imprimer les noms de personnes qui étudient «l'histoire», utilisez:

$ awk '/ historique / print $ 2' TestFile.SMS

La sortie montre clairement que seuls «Sam» et «Tommy» étudient le cours «History».

Comment utiliser l'expression relationnelle avec la commande «awk»:

Pour correspondre au contenu d'un champ spécifique, l'expression relationnelle peut être utilisée. Pour correspondre à n'importe quelle chaîne ou expression contre un champ, indiquez le champ et utilisez l'opérateur de comparaison «~» avec le modèle présenté dans la commande suivante:

$ awk '$ 3 ~ / is / print $ 2' testfile.SMS

La sortie ci-dessus affichant chaque champ de la colonne 2 sur chaque champ qui contient «IS» dans la colonne 3.

Et pour obtenir la sortie opposée de la commande ci-dessus, utilisez le «! ~ ”Opérateur:

$ awk '$ 3! ~ / is / print $ 2 'TestFile.SMS

À titre de comparaison, nous pouvons également utiliser des opérateurs comme plus que «>» et moins que «<” and equal “=” as well:

$ awk '$ 4> 70 print $ 2' testfile.SMS

La sortie a imprimé les noms de personnes qui ont obtenu des notes de plus de 70.

Comment utiliser le motif de plage avec la commande awk:

Une plage peut également être utilisée pour la recherche; Utilisez simplement la virgule «» pour séparer la plage comme présenté dans la commande mentionnée ci-dessous:

$ awk '/ joel /, / marlene / print $ 3' testfile.SMS

La sortie montre les sujets de la gamme de «Joel» à «Marlene» de la colonne 2. Nous pouvons utiliser le signe double égal «==» pour définir une plage; Voir l'exemple ci-dessous:

$ awk '$ 4 == 80, $ 4 == 90 print $ 0' TestFile.SMS

La sortie affiche les noms des personnes de la colonne 2 pour la plage de marques «70 à 80» de la colonne 4.

Comment combiner le modèle à l'aide de l'opérateur logique:

L'utilisation d'opérateurs logiques tels que ou «||» et «&&» vous permettent de combiner des modèles pour la recherche. Utilisez la commande suivante

$ awk '$ 4> 80 && $ 6> 0.4 imprimer 2 $ '.SMS

La commande ci-dessus imprime les noms des gens contre le quatrième champ plus significatif que 80 et le sixième champ supérieur à 0.4. Et seuls deux enregistrements remplissent la condition.

Les expressions spéciales de la commande awk:

Il y a deux expressions spéciales, "COMMENCER" et "FIN»:

Commencer: effectuer une action avant le traitement des données

Fin: pour effectuer une action après le traitement des données

$ awk 'begin print "Le traitement a commencé"; imprimer 2 $; Fin imprimer "Le traitement a terminé" 'TestFile.SMS

La variable intégrée utile de la commande awk:

La commande awk a diverses variables qui aident au traitement des données:

Variable Description
NF Il donne le nombre de champs dans les données
NR Il donne le nombre de l'enregistrement actuel
NOM DE FICHIER Affiche le nom du fichier qui est actuellement en cours
FS et OFS Séparateur de champ et séparateur de champ de sortie
RS et ORS Sépare le séparateur d'enregistrement d'enregistrement et de sortie

Par exemple:

$ awk 'end imprimer "Le nom du fichier est" le nom de fichier "a" nf "champs et" nr "enregistre"' testfile.SMS

Nous utilisons «fin», mais si vous utilisez «Begin», la sortie donnerait 0 champs et 0 enregistrements.

Comment changer le séparateur d'enregistrement:

Le séparateur par défaut dans l'enregistrement est généralement de l'espace; S'il y a une virgule «» ou dot «.«En tant que séparateur de champ, utilisez l'option« FS »avec le séparateur.

Ayons un autre fichier où les champs de données sont séparés par une virgule Colons ":":

$ cat testfile2.SMS
$ awk 'begin fs = “:” print $ 2' testfile2.SMS

Étant donné que le séparateur du fichier est un côlon, mais la commande «awk» même bénéfique pour les fichiers comme celui-ci, utilisez simplement l'option «FS».

Le «-f» peut également être utilisé:

$ awk -f ":" 'print $ 2' testfile2.SMS

Le séparateur d'enregistrement par défaut est «Newline» et pour définir le séparateur d'enregistrement sur «:», utilisez:

$ awk 'begin rs = “:” print $ 1' testfile2.SMS

Actions awk:

Les actions awk sont de minuscules programmes entourés de supports «» et ont plus d'une déclaration séparée par des demi-colons »;».

La déclaration la plus utilisée avec la commande «awk» est la déclaration «imprimer». Par exemple, pour imprimer un texte avec chaque enregistrement, utilisez la chaîne de texte en guillemets:

$ awk '"le est un champ", $ 2' TestFile.SMS

Performons une opération de somme simple en utilisant awk:

$ awk 'sum + = $ 4 end printf "% d \ n", sum' testfile.SMS

Création d'un programme AWK:

Commençons par la programmation «awk», la programmation donnée ci-dessous fait simplement la multiplication:

COMMENCER
i = 2
tandis que (J<4)

Imprimez «La multiplication de 2 avec» j «est» i * j;
J++

Enregistrez le programme par le nom de «mycode.awk»Et pour l'exécuter, ouverte terminal et type:

$ awk -f mycode.awk

Conclusion:

La commande «awk» est une commande pratique à traiter, scanner les données de fichiers texte, tels que la séparation d'un champ particulier d'un fichier; Nous utilisons la commande «awk». Il est plus facile de rechercher quoi que ce soit sous n'importe quelle forme ou modèle à partir des fichiers texte. Dans ce guide, nous comprenons les bases de la commande «awk» et son utilisation. La commande «awk» valide les données, génère des rapports et même des fichiers d'analyse. L'utilisation de commandes simples «awk» permet également aux utilisateurs d'écrire de minuscules programmes pour traiter les données plus efficacement.