Des scripts Awk complexes peuvent être placés dans un fichier. Répétons l’astuce de Mercredi en utilisant un fichier script :
$ cat awk-script
BEGIN {n=0}
/^the/{printf(”Line %d: %sn”, n, $2)}
{n=n+1}
END {printf (”Total lines in file %dn”, n)}
Chaque instruction est placée dans une…
Thierry Astuces OSXFAQ
Comptez les lignes et plus encore.
Awk utilise des variables comme tout autre langage. Cet exemple utilise une arithmetique simple pour compter le nombre de lignes d’un fichier :
$ cat text
This file is one witch has a number
begin-marker
of lines, some of…
Thierry Astuces OSXFAQ
Jusqu’à présent, les examples (y compris ceux de la semaine 86) ont utilisé Awk pour filtrer mais pas pour éditer. La semaine 85 montrait comment utiliser ’sed’ pour éditer des fichiers. Awk peut aussi éditer des fichiers.
Chercher et remplacer…
Thierry Astuces OSXFAQ
Voir la semaine 86 pour une introduction à AWK.
Changez le séparateur de champ par défaut utilisé par Awk.
Les fichiers à valeurs séparées par des virgules (’Comma Separated Value’) représentent un moyen populaire d’exporter des tables de données (les tableurs peuvent…
Thierry Astuces OSXFAQ
Specifiez plusieurs modèles à appliquer à chaque ligne répondant aux critères :
$ cat many
line one
the second line
and the third
the fourth
line five
the six
and the last line
$ awk ‘/^the//^line/’ many
line one
the second line
the fourth
line five
the six
Appliquer une commande différente à chaque…
Thierry Astuces OSXFAQ
Executez plusieurs commandes pour chaque ligne en entrée.
Séparatez les commandes avec ‘;’ et toutes les commandes seront exécutées pour chaque ligne répondant aux critères.
Pour afficher la longueur de chaque ligne et la ligne elle-même, utilisez :
$ awk ‘{print(length($0)); print}’ text
22
Ce…
Thierry Astuces OSXFAQ
Traitez une rangée de lignes avec Awk.
Les exemples précédents ont utilisé une expression régulière pour filtrer les lignes. Awk peut être appelé pour traiter une rangée de lignes ou une seule ligne.
Affichez toutes les lignes entre begin-marker et end-marker compris.
$…
Thierry Astuces OSXFAQ
Si l’un de vos enfants s’intéresse à la programmation, il serait bon de prendre un peu de temps pendant les vacances pour lui apprendre quelques concepts. Michael Norton a écrit ce tutoriel pour son fils qui est au collège, et le propose aux lecteurs de Mac DevCenter et leurs enfants. En quelques leçons votre enfant peut développer un programme de dessin amusant… et je suis sûr que ce n’est que le début. 21/09/2004
opoppon Développer sur Mac OS X Tcl
Affichez des champs spécifiques de chaque ligne correspondant aux critères.
L’astuce de Lundi utilisait l’action {print($0)}. $0 représente la ligne entière passée en entrée. $n représente le champ n. Les champs sont séparés par des espaces.
Une application commune revient à afficher…
Thierry Astuces OSXFAQ
Les astuces de cette semaine explorent Awk, un utilitaire pratique qui exécute un script de commandes d’édition passé en entrée. Reportez vous aussi aux astuces de la semaine précédente sur Sed qui présente des fonctions similaires.
Imprimer des lignes contenant un…
Thierry Astuces OSXFAQ
Commentaires récents