Awk

10 exemples de commandes Awk impressionnants

10 exemples de commandes Awk impressionnants
La commande Awk est un outil puissant pour traiter les données. Il obtient les données d'entrée, les manipule et donne des résultats en sortie standard. Diverses opérations peuvent être effectuées sur les lignes et les 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 cet article couvre les principales fonctionnalités de la commande "awk". Vérifions d'abord la syntaxe :

$ awk [options] [fichier]

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

Option La description
-F Pour spécifier un séparateur de fichiers
-F Spécifiez le fichier qui contient le script "awk"
-v Pour affecter une variable

Jetons un coup d'œil à quelques exemples sur l'utilisation de la commande "awk", et pour démonstration, j'ai créé un fichier texte du nom de testFichier.SMS:

1. 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 du fichier, utilisez :

$cat fichier de test.SMS

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

$awk 'print $2' fichier de test.SMS

Pour imprimer plusieurs champs, utilisez la commande :

$awk 'print $1,$2,$3' fichier de test.SMS

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

$awk 'print $1$2$3' fichier de test.SMS

2. Comment utiliser une expression régulière avec la commande awk :

Pour faire correspondre les chaînes ou toute expression, nous utilisons des barres obliques "//", par exemple, si vous souhaitez imprimer les noms des personnes qui étudient "Histoire", utilisez alors :

$awk '/History/ print $2' testFile.SMS

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

3. Comment utiliser l'expression relationnelle avec la commande "awk":

Pour correspondre au contenu d'un champ spécifique, une expression relationnelle peut être utilisée. Pour faire correspondre une chaîne ou une expression à 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 dans la colonne 2 contre chaque champ qui contient "est" 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

A titre de comparaison, nous pouvons également utiliser des opérateurs tels que supérieur à ">" et inférieur à "<” and equal “=” as well:

$awk '$4>70 print $2' fichier de test.SMS

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

4. Comment utiliser le modèle 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 double signe é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 notes « 70 à 80 » de la colonne 4.

5. Comment combiner un motif à 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 print $2' fichier de test.SMS

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

6. Les expressions spéciales de la commande awk :

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

BEGIN : ​​pour effectuer une action avant le traitement des données

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

$awk 'BEGIN imprimer "Le traitement a commencé" ; imprimer $2 ; END print "Le traitement est terminé"' testFile.SMS

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

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

Variable La description
NF Il donne le nombre de champs dans les données
NR Il donne le numéro de l'enregistrement en cours
NOM DE FICHIER Affiche le nom du fichier en cours de traitement
FS et OFS Séparateur de champs et Séparateur de champs de sortie
RS et SRO Sépare l'enregistrement et le séparateur d'enregistrement de sortie

Par example:

$awk 'ENDprint "Le nom du fichier est" FILENAME "a" NF "champs et" NR "records"' testFile.SMS

Nous utilisons "END", mais si vous utilisez "BEGIN", la sortie donnerait 0 champs et 0 enregistrements.

8. Comment changer le séparateur d'enregistrements :

Le séparateur par défaut dans l'enregistrement est généralement l'espace ; s'il y a une virgule "," ou un point "." comme séparateur de champ, puis 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 deux-points " :":

$cat fichiertest2.SMS
$awk 'BEGIN FS= ":" print $2' testFile2.SMS

Étant donné que le séparateur du fichier est un deux-points, mais que la commande "awk" est 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'enregistrements par défaut est « newline » et pour définir le séparateur d'enregistrements sur « : », utilisez :

$awk 'BEGIN RS = ":"print $1' testFile2.SMS

9. Awk Actions :

Les actions Awk sont de petits programmes entourés de crochets "" et comportant plusieurs instructions séparées par des points-virgules ";".

L'instruction la plus utilisée avec la commande "awk" est l'instruction "print". Par exemple, pour imprimer un texte avec chaque enregistrement, utilisez une chaîne de texte entre guillemets :

$awk '"Le est un champ," $2' fichier de test.SMS

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

$awk 'somme += $4 END printf "%d\n", somme' testFile.SMS

dix. 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)

print “La multiplication de 2 avec” j “ est ” i*j;
j++

Enregistrez le programme sous le nom de "monCode.ok” et pour l'exécuter, ouvrez le terminal et tapez :

$awk -f monCode.ok

Conclusion:

La commande « awk » est une commande pratique pour traiter, analyser les données de fichiers texte, comme séparer un champ particulier d'un fichier ; nous utilisons la commande "awk". Il facilite la recherche de n'importe quoi 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 analyse les fichiers. L'utilisation de commandes simples "awk" permet également aux utilisateurs d'écrire de petits programmes pour traiter les données plus efficacement.

Comment installer et jouer à Doom sur Linux
Introduction à Doom La série Doom est née dans les années 90 après la sortie du Doom original. Ce fut un succès instantané et à partir de ce moment-là...
Vulkan pour les utilisateurs Linux
Avec chaque nouvelle génération de cartes graphiques, nous voyons les développeurs de jeux repousser les limites de la fidélité graphique et se rappro...
OpenTTD contre Simutrans
Créer votre propre simulation de transport peut être amusant, relaxant et extrêmement attrayant. C'est pourquoi vous devez vous assurer que vous essay...