Je voudrais faire un nouveau fichier a partir d'un fichier source qui contient des valeurs. Mon vrai besoin c'est exploiter un report de scan nessus. Mon fichier de scan a cette structure
Numero de serie
12345677889
chiffrement du certif : SHA256
Numero de serie
23345677889
chiffrement du certif : SHA1
Numero de serie
26545677889
chiffrement du certif : SHA1
….
et je voudrais mettre ces infos dans un fichier mieux structurer pour faire des stats dans excel. Idealement je voudrais obtenir un fichier de la forme
Numero de serie,chiffrement du certif
12345677889,SHA256
23345677889,SHA1
26545677889,SHA1
# en awk
Posté par BAud (site web personnel) . Évalué à 2. Dernière modification le 08 juillet 2015 à 21:36.
bon, il y a un espace en trop pour le chiffrement, mais bon…
[^] # Re: en awk
Posté par Michaël (site web personnel) . Évalué à 4. Dernière modification le 08 juillet 2015 à 21:52.
Je ferais plutôt comme ça, avec un fichier
reformat.awk
puis
[^] # Re: en awk
Posté par Michaël (site web personnel) . Évalué à 3.
ou comme ça :)
[^] # Re: en awk
Posté par BAud (site web personnel) . Évalué à 2.
là, tu supposes que chaque enregistrement affiche toujours les mêmes lignes, il peut y avoir des lignes supplémentaires parfois je pense, ce qui mettrait à mal ton "raccourci". Mieux vaut se baser sur des mots clés tout de même :-)
(et oui, mon printf ne prend pas en compte de formatage, je fais souvent ce raccourci…).
Je suis étonné que le FS accepte plus d'un caractère, ça plantait iirc, tant mieux si ça a évolué !
[^] # Re: en awk
Posté par Michaël (site web personnel) . Évalué à 2.
Oui c'est encore plus fragile que la version avec les regexp mais je comprends qu'il s'agit d'un traitement unique, alors bon, autant en profiter!
Le field splitter est en fait une expression rationnelle. Je n'ai pas le Awk Programming Language (par A, W and K) mais le sed & awk de chez O'Reilly laisse penser que le field splitter est une expression rationnelle dans le programme original.
[^] # Re: en awk
Posté par BAud (site web personnel) . Évalué à 3.
ça m'intéresserait de savoir depuis quand :-)
C'est l'excuse que je donne encore à Excel lors de l'importation de CSV de ne pas savoir gérer plus d'un caractère : « awk ne fait pas mieux de toute façon… », même si côté awk le « | » permet d'avoir le choix entre deux caractères iirc (dans ma compréhension, ça a été pensé pour du CSV, la virgule en anglais, le point-virgule en français… sans voir plus loin). Si c'est en fait une regexp, c'est excellent, autant le proposer pour l'importation CSV côté Calc de LibreOffice :D (si cela n'a pas déjà été fait, au pire dans un onglet « utilisation avancée »).
Bon, je vais regarder ce thread en espérant que quelqu'un propose quelque chose de faisable avec R qui est aussi une belle réussite :D (malgré un site web pourrite, un nom pourrite, mais d'une efficacité redoutable et scriptable pour traiter les données, à croire qu'il n'y a que des universitaires pour l'utiliser pour du big data…).
[^] # Re: en awk
Posté par Michaël (site web personnel) . Évalué à 2.
C'est aussi la technologie derrière l'outil machine leraning de AWS :)
Est-ce que avec R on peut faire des “dashboards“ du genre
Par exemple, à la fin j'ai une page web locale avec deux champs de date que je complète et il fait 1. 2. 3. et 4. ?
[^] # Re: en awk
Posté par Le Pnume . Évalué à 3.
Cf par exemple le package R "Shiny" qui fait ça très bien.
[^] # Re: en awk
Posté par Michaël (site web personnel) . Évalué à 2.
Excellent, c'est exactement le logiciel que j'avais envie d'écrire! Merci pour la référence.
[^] # Re: en awk
Posté par Nonolapéro . Évalué à 2.
Pour mélanger du code, des graphes et le tout sur un page web, le notebook d'IPython si tu connais le python ou celui de Jupyter pour plein d'autres langages est vraiment parfait.
[^] # Re: en awk
Posté par Ignatz Ledebur . Évalué à 3. Dernière modification le 09 juillet 2015 à 14:36.
Depuis 1987, si on en croît le manuel de GAWK. C'est en tout cas disponible dans l'implémentation de Kernighan, qui reflète ce qui est décrit dans The AWK Programming Language.
# en sed
Posté par Michaël (site web personnel) . Évalué à 5.
Ton fichier
reformat.sed
puis
[^] # Re: en sed
Posté par BAud (site web personnel) . Évalué à 3. Dernière modification le 08 juillet 2015 à 22:00.
classe :-) et en plus il n'y a pas l'espace surnuméraire.
(et aussi illisible que le awk :p)
heureusement qu'il y a ces langages dont la page de man en laisse dubitatif plus d'un, mais dont l'approfondissement permet de traiter efficacement des fichiers textes !
à chaque fois que je dois relire un programme en sed ou en awk, cela me rappelle tout de même que http://www.ioccc.org/ existe encore ! (découvert dans Dr.Dobb's Journal au siècle dernier soit à La Villette, soit à la bibliothèque du centre Pompidou…).
bon j'ai fait du flex/bison (remplaçants GNU de lex/yacc) aussi…
[^] # Re: en sed
Posté par Michaël (site web personnel) . Évalué à 2.
Merci :D
Si tu aimes bien le sed et le awk tu peux savourer les solutions que j'ai données à un petit puzzle sur CodeGolf SE: http://codegolf.stackexchange.com/questions/23259/do-we-sink-or-swim
Je suis particulièrement fier de la solution sed ! :)
[^] # Re: en sed
Posté par BAud (site web personnel) . Évalué à 3.
la solution sed qui fait 128 caractères ? Le gagnant en a 30 :-)
Bon, c'est rigolo de voir de l'APL (oui, j'en ai aussi fait, bien mathématique, mais très efficace, j'avais regardé Forth en même temps et ai toujours regretté de ne pas avoir de HP 48 :/)
[^] # Re: en sed
Posté par Michaël (site web personnel) . Évalué à 2. Dernière modification le 08 juillet 2015 à 23:13.
Pour moi le challenge était de faire un petit calcul avec sed – dont on peut s'accorder à dire qu'il n'est peut-être pas fait pout ça! :) Sinon j'ai aussi écrit la solution awk qui fait 70 caractères et arrive comme premier parmi les langages généralistes.
[^] # Re: en sed
Posté par anaseto . Évalué à 2.
Ce qui est dommage c'est que ce soit le nombre de caractères qui soit compté. Si c'était plutôt le nombre de concepts, ce serait déjà une meilleure mesure de la complexité pour le cerveau humain. Par concepts j'entends le nombre de lexèmes, par exemple, même si sans doute certains lexèmes, suivant s'ils représentent des fonctions plus ou moins compliquées, suivant s'il s'agit de built-in ou non, devraient avoir des poids différents aussi. À mon avis la solution awk ne s'en sortirait pas moins bien que J, APL, etc. sur l'exemple donné, même si ce n'est peut-être pas non plus le langage le plus naturel pour le problème.
[^] # Re: en sed
Posté par Michaël (site web personnel) . Évalué à 2.
Je trouve l'idée du Code Golfing assez amusante, mais en utilisant des langages spécialement écrits pour, je ne vois plus trop l'intérêt. Mais même si on ne triomphe pas en étant couvert de médailles d'or à la fin de la journée, on peut jouer avec ce qui est proposé et y trouver ses propres défis – j'aime bien le je fais tout avec sed et awk par exemple!
# En Perl
Posté par sebre . Évalué à 4.
Vite fait sur le gaz :
[^] # Re: En Perl
Posté par Nicolas Casanova . Évalué à 4.
Avec éventuellement un
BEGIN
, sinon point d'en-tête de colonnes :Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.