Si vous apprenez rapidement les bases d'awk, vous pouvez vraiment faire des choses incroyables en ligne de commande.
Mais la vraie raison d'apprendre awk est d'avoir une excuse pour lire le superbe livre The AWK Programming Language par Aho, Kernighan et Weinberger.
The AWK Programming Language sur archive.org
Vous pourriez penser, d'après le nom, qu'il vous apprend simplement awk. En réalité, ce n'est que le début. Se lançant dans la vaste gamme de problèmes pouvant être abordés une fois que l'on utilise un langage de script concis qui facilite la manipulation de chaînes de caractères - et awk était l'un des premiers - il enseigne au lecteur comment implémenter une base de données, un analyseur, un interprète et (si ma mémoire est bonne) un compilateur pour un langage informatique spécifique à un projet! Si seulement ils avaient également programmé un système d'exploitation exemple en utilisant awk, le livre aurait été une introduction assez complète à l'informatique!
Célèbre pour sa clarté et sa concision, comme le livre original sur le langage C, c'est en outre un merveilleux exemple d'écriture technique conviviale bien réalisée. Même l'index est une pièce d'artisanat.
Awk? Si vous le connaissez, vous l'utiliserez occasionnellement en ligne de commande, mais pour tout ce qui est plus important, vous vous sentirez piégé, incapable d'accéder aux fonctionnalités plus étendues de votre système et d'Internet auxquelles un langage comme Python donne accès. Mais le livre? Vous serez toujours content de l'avoir lu!
4 votes
C'est 2019 et je viens de réécrire un normaliseur de logs python en awk. J'ai exécuté la transformation sur une semaine de fichiers journaux qui comportaient 54 millions de lignes (~9 Go). Sur mon Macbook Pro (2,8 GHz i7, 16 Go de Ram), la version python pouvait traiter ~10k lignes par seconde => 90 minutes de temps d'exécution. En utilisant mawk, le temps d'exécution s'est réduit à 2 minutes. Au fait, le programme awk était deux fois plus petit.
0 votes
@misterhenry avez-vous essayé pypy ?