Publié par Jérémie Bresson dans les docs Jmini (http://docs.jmini.fr) à l’adresse (http://docs.jmini.fr/pas-a-pas/se-servir-de-awk-dans-mac-os-x).
Dernière mise à jour : Vendredi 20 juillet 2007
Se servir de AWK dans Mac OS X
Durant un de mes cours, j’ai été amené à utiliser le langage de script AWK. N’étant pas un spécialiste du terminal, j’ai éprouvé quelques difficultés pour reproduire avec MAC OS X ce que j’avais vu en cours. Cet article est donc un genre de “AWK sur MAC OS X pour les nuls“.
AWK :
AWK est un langage de script essentiellement fait pour manipuler les lignes d’un fichier texte. Il est particulièrement utile pour exécuter toute sorte d’opérations sur les fichiers CSV (pour Comma-separated values – texte tabuler).
Le nom AWK est l’assemblage des initiales des noms des créateurs du langage : Alfred Aho, Peter Weinberger et Brian Kernighan.
On trouve ce langage sur pratiquement tous les systèmes UNIX sous le nom d’awk ou gawk (pour GNU awk). C’est évidemment le cas sur Mac OS X.
Création d’un programme :
Encore une fois, cet article est vraiment écrit “pour les nuls” et je conseille aux spécialistes d’UNIX de passer leur chemin. Voici pas à pas les étapes à suivre pour créer un script simple qui affiche les lignes impaires d’un fichier.
0) Vérifier le chemin d’awk :
Pour savoir où se situe la commande awk (à priori dans le répertoire bin), il suffit de lancer dans le terminal la commande wich :
which awk
Normalement le shell répond /usr/bin/awk
1) Ecrire le fichier de script :
Bien que l’on puisse utiliser directement la commande awk dans le terminal, très vite on souhaite avoir un script un petit peu sophistiqué. Il est donc plus simple de le taper dans un fichier texte : ligneImpaire.awk.
A l’aide de n’importe quel éditeur de texte (personnellement j’utilise TextMate, mais les plus Geek pourront utiliser la commande nano ou vi dans le terminal) il faut créer le fichier. Mettons qu’on l’enregistre dans un dossier awk sur le bureau.
2) Première ligne du fichier :
La première ligne du fichier doit impérativement être :
#!/usr/bin/awk -f
(avec le chemin trouvé à l’étape 0)
C’est primordial, cette ligne indique en effet au terminal qu’il s’agit d’un script AWK.
Ensuite il est bon d’écrire sur quelques lignes de commentaires à quoi sert le script que l’on est en train de taper (pour s’en souvenir plus tard).
Notre fichier contient donc :
#!/usr/bin/awk -f
# ligneImpaire.awk : affiche les lignes impaires d'un fichier
# http://jmini.fr/
(NR % 2 == 1) {
print $0
}
Pour le script en lui même je vous envoie vers d’excellents tutoriaux listé à la fin de cet article.
3) Rendre le fichier exécutable :
Dans le terminal on se place dans le dossier du script avec la commande cd :
cd ~/Desktop/awk/
Ensuite on utilise la commande chmod pour rendre le fichier exécutable :
chmod +x ligneImpaire.awk
4) Lancer le fichier :
Pour lancer le script il suffit de faire avec la commande ./ligneImpaire.awk suivit des fichiers à traiter :
./ligneImpaire.awk texte.txt
Et c’est tout !!!
J’ai écris un autre article sur le fait de rendre un fichier exécutable dans le terminal
En pièce jointe de cet article, retrouvez l’archive contenant tous les fichiers : awk.zip
En savoir plus :
- AWK sur Wikipédia.
- Tutoriel awk : simple, concis et efficace sur devellopez.com.
- LE LANGAGE AWK par Frédéric LACROIX et Dan BOG, tout sur AWK en 105 pages avec explications détaillées et exemples.
Voir aussi
Les mots-clés de cet article : awk, mac os x, programmation, terminal
Cet article est dans la catégorie : Pas à pas