{"id":73,"date":"2013-03-10T19:32:05","date_gmt":"2013-03-10T18:32:05","guid":{"rendered":"http:\/\/sam-soul.fr\/Info\/?p=73"},"modified":"2013-03-10T19:32:05","modified_gmt":"2013-03-10T18:32:05","slug":"awk-one-liner-memo","status":"publish","type":"post","link":"http:\/\/les-fougs.com\/wordpress\/2013\/03\/10\/awk-one-liner-memo\/","title":{"rendered":"Awk one liner m\u00e9mo"},"content":{"rendered":"<p>Voici un memo des expression awk permettant des traitements en une ligne. C&rsquo;est l\u00e0 que l&rsquo;on voit toute la puissance de awk!<\/p>\n<p>Le fichier d&rsquo;exemple est fichier:<br \/>\n1 2 3<br \/>\n4 5 6<br \/>\nLe fichier de texte est texte:<br \/>\nle chat est parti le matin.<br \/>\nIl avait du lait dans sa gamelle.<br \/>\n<strong>fichier entier<\/strong><\/p>\n<p>Pour faire la somme des valeurs des lignes<br \/>\n6<br \/>\n15<\/p>\n<p>Pour faire la somme de toutes les lignes<br \/>\n21<\/p>\n<p>Pour connaitre le nombre de champs<br \/>\n6<\/p>\n<p>Pour convertir un fichier msdos sous unix<\/p>\n<p><strong>traitement des colonnes<\/strong><\/p>\n<p>Pour afficher la derni\u00e8re colonne<br \/>\n3<br \/>\n6<\/p>\n<p>Pour d\u00e9truire une colonne (ici la deuxi\u00e8me):<\/p>\n<p>Pour extraire des colones<br \/>\nawk &lsquo;{print $2,$3}&rsquo; fichier<br \/>\n2 3<br \/>\n5 6<\/p>\n<p>Pour faire la somme d&rsquo;une colonne<br \/>\ntotal: 7<\/p>\n<p>Pour afficher les fichiers qui appartiennent \u00e0 l&rsquo;utilisateur root ou jlb:<br \/>\nls -l | awk &lsquo;$3 == &laquo;&nbsp;jlb&nbsp;&raquo; || $3 == &laquo;&nbsp;root&nbsp;&raquo; { print $9}&rsquo;<\/p>\n<p>Pour afficher les fichiers qui appartiennent \u00e0 l&rsquo;utilisateur jlb qui font plus d&rsquo;1 Ko:<br \/>\nls \u2013al |awk \u2018$3 == &laquo;&nbsp;jlb&nbsp;&raquo; &amp;&amp; $5 &gt; 1024 {print $9}\u2019<\/p>\n<p>Pour afficher les fichiers qui n&rsquo;appartiennent pas \u00e0 l&rsquo;utilisateur oracle:<br \/>\nls \u2013al |awk \u2018$3 != &laquo;&nbsp;oracle&nbsp;&raquo; {print $9}\u2019<\/p>\n<p>Pour trouver le min et le max de la premi\u00e8re colonne<\/p>\n<p>Max = 4 Min = 1<\/p>\n<p>Pour afficher une colone donn\u00e9e en fonction d&rsquo;un crit\u00e8re avec | comme d\u00e9l\u00e9miteur:<\/p>\n<p><strong>substitutions \/ extractions<\/strong><\/p>\n<p>Pour ins\u00e9rer une chaine en d\u00e9but de chaque ligne du fichier<br \/>\nawk &lsquo;{sub(\/^\/,&nbsp;&raquo;rm &laquo;&nbsp;);print}&rsquo; fichier<\/p>\n<p>Pour substituer une chaine par une autre : gsub pour toutes les occurances, sub pour la premi\u00e8re:<br \/>\nX chat est parti le matin.<br \/>\nIl avait du lait dans sa gamelle.<br \/>\n<a href=\"mailto:root@hercule:\/root\">root@hercule:\/root<\/a> #awk &lsquo;{gsub(\/le \/,&nbsp;&raquo;X &laquo;&nbsp;);print}&rsquo; texte<br \/>\nX chat est parti X matin.<br \/>\nIl avait du lait dans sa gamelle.<\/p>\n<p>Pour afficher une ligne donn\u00e9e<br \/>\nIl avait du lait dans sa gamelle.<\/p>\n<p>Pour afficher une section entre deux lignes<\/p>\n<p>Pour afficher la premi\u00e8re ligne d&rsquo;un fichier<\/p>\n<p>Pour afficher une section entre deux expression r\u00e9guli\u00e8res<br \/>\nawk &lsquo;\/begin\/,\/end\/&rsquo;<\/p>\n<p><strong>emulation de commmandes UNIX<\/strong><\/p>\n<p>Pour \u00e9muler la commande uniq :<br \/>\nawk &lsquo;a !~ $0; {a=$0}&rsquo;<\/p>\n<p>Pour \u00e9muler la commande head :<br \/>\nle chat est parti le matin.<\/p>\n<p>Pour \u00e9muler la commande grep :<br \/>\nle chat est parti le matin.<\/p>\n<p>Pour \u00e9muler la commande grep -v:<br \/>\nIl avait du lait dans sa gamelle.<\/p>\n<p>Pour \u00e9muler la commande wc -l:<br \/>\n$awk \u2018 END {print NR}\u2019<\/p>\n<p>Pour \u00e9muler la commande grep avec des and:<\/p>\n<p>Pour \u00e9muler la commande seq :<\/p>\n<p>for i in `echo | awk &lsquo;{ for (i=1;i&lt;10;i++){ print i}}&rsquo;`<br \/>\ndo<br \/>\necho $i<br \/>\ndone<\/p>\n<p><strong>shell extension<\/strong><\/p>\n<p>Comment effectuer une op\u00e9ration arithm\u00e9tique avec awk<br \/>\necho | awk -v x=$a -v y=3 &lsquo;{ print x\/y}&rsquo;<br \/>\n0.666667<\/p>\n<p>Comment tirer un nombre al\u00e9atoirement entre 1 et 6:<br \/>\necho | awk &lsquo;{srand() ; print int(6*rand()+1)}&rsquo;<\/p>\n<p>Comment splitter les lignes d&rsquo;un fichier:<br \/>\ncat \/etc\/passwd | awk &lsquo;{ split($1,t,&nbsp;&raquo;:&nbsp;&raquo;); print t[1],t[2]}&rsquo;<\/p>\n<p>Comment afficher en couleur un texte<br \/>\nawk -v a=&nbsp;&raquo;\\033[1;31m &nbsp;&raquo; &lsquo;BEGIN {print a &laquo;&nbsp;rouge&nbsp;&raquo;}&rsquo;<\/p>\n<p>Comment lancer une commande \u00e0 partir de awk<br \/>\necho | awk &lsquo;{ system(&laquo;&nbsp;ls&nbsp;&raquo;) }&rsquo;<\/p>\n<p>Une autre mani\u00e8re de faire en passant par une variable awk interm\u00e9diaire.<br \/>\nawk &lsquo;BEGIN { resultat= system (&laquo;&nbsp;ls | grep ksh&nbsp;&raquo;)<br \/>\necho resultat<br \/>\n}&rsquo;<\/p>\n<p><strong>commandes magiques<\/strong><\/p>\n<p>Pour renommer tous les fichiers en .Old:<br \/>\nls *.l | awk &lsquo;{print &laquo;&nbsp;mv &laquo;&nbsp;$1&nbsp;&raquo; &laquo;&nbsp;$1&Prime;.old&nbsp;&raquo;}&rsquo; | sh<\/p>\n<p>Pour connaitre la taille totale occup\u00e9e par les disques<br \/>\n\/1024 &nbsp;&raquo; Mb&nbsp;&raquo;}&rsquo;<br \/>\ntaille total: 2783.14 Mb<\/p>\n<p>Pour afficher le plus gros fichiers des sous r\u00e9pertoire courrants et sa taille:<br \/>\n3423065 hercule_061115_0000.nmon.csv<\/p>\n<p>Pour afficher un nombre entier<br \/>\ncat lsfs | awk &lsquo;{sum +=$5} END {printf &laquo;&nbsp;%.f\\n&nbsp;&raquo;,sum}&rsquo;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Voici un memo des expression awk permettant des traitements en une ligne. C&rsquo;est l\u00e0 que l&rsquo;on voit toute la puissance de awk! Le fichier d&rsquo;exemple est fichier: 1 2 3 4 5 6 Le fichier de texte est texte: le chat est parti le matin. Il avait du lait dans sa gamelle. fichier entier Pour &hellip; <a href=\"http:\/\/les-fougs.com\/wordpress\/2013\/03\/10\/awk-one-liner-memo\/\" class=\"more-link\">Continuer la lecture<span class=\"screen-reader-text\"> de &laquo;&nbsp;Awk one liner m\u00e9mo&nbsp;&raquo;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[51],"tags":[],"_links":{"self":[{"href":"http:\/\/les-fougs.com\/wordpress\/wp-json\/wp\/v2\/posts\/73"}],"collection":[{"href":"http:\/\/les-fougs.com\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/les-fougs.com\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/les-fougs.com\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/les-fougs.com\/wordpress\/wp-json\/wp\/v2\/comments?post=73"}],"version-history":[{"count":0,"href":"http:\/\/les-fougs.com\/wordpress\/wp-json\/wp\/v2\/posts\/73\/revisions"}],"wp:attachment":[{"href":"http:\/\/les-fougs.com\/wordpress\/wp-json\/wp\/v2\/media?parent=73"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/les-fougs.com\/wordpress\/wp-json\/wp\/v2\/categories?post=73"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/les-fougs.com\/wordpress\/wp-json\/wp\/v2\/tags?post=73"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}