Re: [SSFR] quel langage ? |
[ Thread Index |
Date Index
| More debianworld.org/shellscript-fr Archives
]
Selon Philippe Jacquot <philippe.j@xxxxxxxxx>:
> Marc Chantreux a écrit :
>
> > Philippe Jacquot wrote:
> >
> >> Sed et awk sont des *filtres*: ils n'interagissent aucunement avec
> >> linux, mais prennent des données en entrée, les traitent et crachent,
> >> le cas échéant, une sortie.
> >
> > d'accord pour sed, pas pour awk! tu peux tres bien faire un programme
>
> Certes, awk entretient cette dualité. Je fais amende honorable, même
> s'il est quand même peu courant pour le péquin moyen de faire tout un
> programme en awk. Et l'orientation texte limite quand même pas mal le
> champ d'action du langage (si on lui retire sa commande system()).
En fait, Awk est un langage normalisé dans POSIX, ce qui permet
d'écrire des programmes assez portables. Et il est resté utilisé
pendant longtemps mais quand Perl est devenu populaire, Awk est
devenu bien moins utilisé. Pour la petite histoire, Larry Wall
avait retardé la sortie de Perl 1.000 jusqu'au bon fonctionnement
des utilitaires s2p et a2p (pour convertir les scripts sed et awk
en scripts Perl).
Ceci dit, il est intéressant d'apprendre Awk en plus d'un autre
langage de script car il est assez simple et c'est utile pour
répondre à certains types de contraintes, awk ayant une empreinte
mémoire inférieure à perl par exemple. Dans le cas de scripts
courts ou unilignes s'exécutant rapidement, awk permet d'éviter
une consommation de mémoire inutile. Par exemple, cet uniligne :
$ lsof | awk '$4~/[wu]$/ && $5~/REG/'
est utile pour savoir quel sont les fichiers ouverts en écriture.
Pratique quand on veut monter certaines partitions en read-only.
--
Sébastien Aperghis-Tramoni
Close the world, txEn eht nepO.