
A professeur de Princeton, trouvant a peu de temps pour him dans le creux de l’t universitaire, a envoy un courriel un vieil ami il ya quelques mois. Brian Kernighan he a dit bonjour, he a demand comment se passit sa visite aux tats-Unis et him a laiss des centaines de lignes de code qui pourraient ajouter le support Unicode AWK, l’outil d’analyse de texte qu’il a contrib crer pour Unix aux Bell Labs in 1977.
awk, dont le nom vient des trois crateurs, Alfred Aho, Peter Weinberger et Brian Kernighan, est un langage de traitement de fichiers plats par lignes, disponible sur la plupart des systmes Unix et sous Windows avec MinGW, Cygwin ou Gawk. Il est mainment utilis pour la manipulation de fichiers textes pour des oprations de recherches, de remplacement et de transformations complexes.
Awk fut, en mme temps que Sed, Bourne shell et tar, intgr dans la version 7 d’UNIX en 1979, par les laboratoires Bell. The future for the suite continuellement intgr aux distributions d’UNIX avec, in 1985, une mise jour important de Awk qui donna le New Awk (ou Nawk). Par la suite, de nouvelles versions drives de Nawk apparurent, telles que Mawk (Mike’s Awk), Gawk (Gnu Awk) ainsi que des versions commerciales comme Motrice Kern Systems Awk (MKS Awk), Thompson Automation Awk (Tawk), Videosoft Awk ( Vsawk), et d’autres versions plus spcifiques (Xgawk, Spawk, Jawk, Qtawk, Runawk).
J’ai effectu un certain nombre de tests, mais il est clair que d’autres tests sont ncessaires, crit Kernighan dans le courriel, post fin mai comme une sorte de pseudo-commit sur le repo onetrueawk par le mainteneur de longue date Arnold Robbins . Une fois que j’aurai trouv comment … j’essaierai de soumettre une demande de modification. J’aimerais mieux comprendre git, mais malgr votre aide, je n’ai toujours pas une bonne comprhension, donc cela peut take a certain temps.
Kernighan est le K du langage spcialis pour l’extraction et la manipulation du langage qui tait essentiel aux fonctions de pipeline d’Unix et interoprabilit entre les systmes. Une fonction awk fonctionnelle (AWK est le langage, awk la commande pour the invquer) est essentielle la fois pour the standard UNIX specification and the IEEE POSIX certification for interoperability. Comme dit precedemment, il existe d’innombrables variantes d’AWK y compris des drivs modernes supportant Unicode – mais One True AWKparfois connu sous le nom de nawk, est une sorte de version canonique base sur le livre de Kernighan de 1985 The AWK Programming Language et ses contributions ultrieures.
Kernighan est aussi le K de K&R C, le livre fondateur de 1978 The C Programming Language qu’il a cocrit avec Dennis Ritchie et qui reste grav dans la mmoire des programmeurs, mentally et sur papier. Les racines du C sont bien plus profundes. Kernighan enseignait le langage C aux employs des Bell Labs et a convaincu son crateur of him, Ritchie, de collaborer la rdaction d’un livre pour diffuser les connaissances. Ce livre a donn naissance au seul vrai style d’accolade, au dbat sans so far the accompaniment and the structure qui sous-tend tous les langages de programmation modernes.
Kernighan a galement donn son nom Unix et at le premier dmontrer l’exemple de code Hello world. Il s’est entretenu avec Richard Jensen d’Ars Technica pour une histoire du 50e anniversaire d’Unix.
The dpt onetrueawk, or Kernighan est apparu la fin du mois de mai, est un endroit relativement calme, avec 21 contributeurs, 46 utilisateurs de GitHub qui le surveillent, et des commits qui arrivent tous les quelques mois. Comme a not The Register, the correction Unicode de Kernighan at mise en lumire mainment parce qu’elle at mentionne dans une interview du professeur par la chane YouTube Computerphile.
L’anne dernire, Ben Hoyt, Ingnieur logiciel chez Canonical, a publi sur son blog les rsultats dune exprience quil a mene dans le but dvaluer certains langages de programmation. Lingnieur logiciel here a prcdemment occupy des postes de responsabilit dans le secteur du gnie logiciel a sur a cas dcole comparer les performances des langages Python, Go, C ++, C, AWK, Forth et Rust.
Grce un program qui compte les frquences des mots partir de l’entre standard, puis les affiche avec leurs frquences, en commenant par les plus frquents, Ben Hoyt est came the suivante conclusion: si vous avez juste besoin d’une solution rapide (ce qui est probable), Python et AWK sont recommandables, alors que Go et Rust sont recommandables pour les dveloppeurs qui dsirent avoir des solutions rapides et fiables.
Pour Ben Hoyt, crire un program ou un algorithme qui compte les frquences des mots partir de l’entre standard, puis les affiche avec leur frquence, en commenant par les plus frquents est une bonne question pour un candidat un poste de programmeur lors dun entretien dembauche. Pour lui, contrairement aux questions sur les arbres binaires par exemple, un aspirant au poste de programmeur pourrait three appel crire des scripts de ce type dans la vie relle et cela permra dvaluer sa comprhension des notions dentre / sortie de fichiers, des tables de hachage , et lutilisation de la fonction de tri.
Ce qui peut tre dconcertant de prime abord avec Awk, ce sont ses concepts. Alors que dans la plupart des langages scripts, on dispose de la possibilit de faire peu prs tout et n’importe quoi, Awk dispose d’une structure de programmation qui vite certains alas.
Pour illustrer ces propos, a purement awkien concept concerns the overture des fichiers. En effet, bien qu’on puisse le faire, Awk if charge d’ouvrir les fichiers en lecture que vous metten en paramtre, de les lire et de les fermer. D’autre part, ces fichiers ne sont pas altrs et en principe, on effectue une redirection en sortie des rsultats affichs par les fonctions print() (ou printf()). Au moins un fichier en entre est ncessaire pour launch an Awk script. The procdure gnrale d’excution est la suivante: placer en entre les fichiers sources (ou connecter une sortie de commande par un tube), analyser les women par un script Awk et rcuprer les rsultats en sortie.
Ensuite, le langage Awk est conu pour traiter les fichiers de donnes, et plus particulirement les lignes de ces fichiers. Par dfaut, Awk traite les lignes termines par un retour-chariot et contaant des donnes spares par un espace ou une tabulation. Ainsi, chaque ligne lue est traite par the bloc principal d’instructions and an internal tableau containing the women spares de la ligne en cours.
Cependant, certains fichiers ont des donnes regroupes sur plusieurs lignes plutt que sur une seule. Dans ce cas, on parle d’enregistrement et l’on peut indiquer Awk de traiter plusieurs lignes la fois, jusqu ‘la fin d’un enregistrement, en modifiant les variables FS (sparateur de champs) et RS (sparateur d’enregistrements) .
Cela a toujours t un embarras que AWK ne fonctionne qu’avec l’ASCII, ou peut-tre des entres 8 bits, ma il ne gre pas vraiment l’Unicode du tout, dit Kernighan the interviewer, le professeur David Brailsford. Il ya quelques mois, j’ai pass du temps travailler avec (rires) un program incontroyablement vieillissant. J’en suis came a point or the gre l’enter et la sortie UTF-8, ce qui permet d’avoir des expressions rgulires qui dtectent les caractres japonais, par exemple.
Kernighan, aujourd’hui g de 80 ans, mentionne avec dsinvolture dans the interview qu’il a galement patch quelque chose de rapide et malpropre pour permre AWK de grer les fichiers CSV.
Sources: GitHub, Wikipedia, Vido
Et vous?
Quel est votre outil d’extraction de donnes prfr?
Que pensez-vous de AWK?
Avez-vous lu le livre The C Programming Language ? Quel est votre avis?
Voir aussi:
L’extraction automatique de donnes publiques sur le web est toujours autorise, une cour d’appel des tats-Unis raffirme la lgalit du Web Scraping
Facebook: the informations personnelles de plus de 1,5 milliard d’utilisateurs vendues sur un forum de pirates, nom, adresse lectronique, numro de tlphone, localization sont popularues
Collecter des donnes publiques d’un site pour les utiliser dans ses activits n’est probablement pas illgal, d’aprs une dcision de justice
The Web scraping of 700 millions d’utilisateurs de LinkedIn at fait pour le fun, explique le hacker



