{"id":278,"date":"2019-10-21T19:29:52","date_gmt":"2019-10-21T17:29:52","guid":{"rendered":"http:\/\/linuxboxen2.dk\/?p=278"},"modified":"2019-10-21T19:29:52","modified_gmt":"2019-10-21T17:29:52","slug":"hvordan-bruger-man-awk","status":"publish","type":"post","link":"https:\/\/www.linuxboxen.dk\/?p=278","title":{"rendered":"Hvordan bruger man awk"},"content":{"rendered":"<p>Denne linje bliver vist fordi den slutter med rs Brug ark med (\\) Meta tegn Dette bruges til at beskrive hvadawk<\/p>\n<h3>Brug<\/h3>\n<p>m\u00f8nster scanning og tekst behandling sprog.<\/p>\n<h3>Parametre<\/h3>\n<p>-f l\u00e6s AWK program fra fil.<\/p>\n<p>-S K\u00f8r i sandbox. Du kan ikke udf\u00f8re system() samt redirect er disabled.<\/p>\n<p>&#8211;help<\/p>\n<p>Samt mange flere.<\/p>\n<h3>Eksempler<\/h3>\n<pre>$ awk\n<\/pre>\n<p>Hvordan bruger man awk til at filtre tekst i filer. N\u00e5r du k\u00f8re komandoer en Linux shell til at f\u00e5 tekst ud fra en fil, er det mest fordi vi vil se om filen indenholder en bestemt tekst af en art. Dette er muligt en komandoen awk. awk er IKKE en bash komando men en gnu kommando. Som har nogle rigtig smarte muligheder for at lave filter p\u00e5 data i filer. Et regul\u00e6re udtryk er en m\u00e5de at beskrive hvordan filteret skal virke. Muligheder.<\/p>\n<ol>\n<li><code>(.)<\/code>\u00a0det it matcher alle normale tegn p\u00e5 n\u00e6r ny linje.<\/li>\n<li><code>(*)<\/code>\u00a0det matcher ingen eller flere tegn af samme type<\/li>\n<li><code>[ character(s) ]<\/code>\u00a0it matches any one of the characters specified in character(s), one can also use a hyphen (-) to mean a range of characters such as [a-f], [1-5], and so on.<\/li>\n<li><code>^<\/code>\u00a0matcher begyndelse af linjerne i filen.<\/li>\n<li><code>$<\/code>\u00a0matcher slutningen af linjerne i filen.<\/li>\n<li><code>\\<\/code>\u00a0escape tegn.<\/li>\n<\/ol>\n<p>Den generalle syntax for awk er:<\/p>\n<p># awk &#8216;script&#8217; filnavn &#8216;script&#8217; er et kommando set som forst\u00e5s af awk og bliver udf\u00f8rt p\u00e5 filen som angives. Det virker p\u00e5 den m\u00e5de at den laver en kopi af hver linje i filen og udf\u00f8re scriptet kommandoerne og udl\u00e6ser resultatet igen gemmen stdio. Dette gentages gemmen hele filen. I dette eksempel bruger vi formen &#8216;\/s\u00f8gefter\/&#8217; typen. Hvor s\u00f8gefter er det regul\u00e6re udtryk som vi skal finde. Her udskrives alle linjer fra filen, da der ikke er givet noget regul\u00e6rt udtryk.<\/p>\n<pre>$ awk '\/\/{print}' \/etc\/hosts 127.0.0.1 localhost \n# The following lines are desirable for IPv6 capable hosts \n::1 ip6-localhost ip6-loopback \nfe00::0 ip6-localnet \nff00::0 ip6-mcastprefix \nff02::1 ip6-allnodes \nff02::2 ip6-allrouters<\/pre>\n<p>I dette eksempel s\u00f8ges der efter localhost s\u00e5 awk vil udskrive alle linjer som indenholder ordret\u00a0<strong>localhost<\/strong>\u00a0fra \/etc\/hosts filen.<\/p>\n<pre>$ awk '\/localhost\/{print}' \/etc\/hosts 127.0.0.1 localhost ::1 ip6-localhost ip6-loopback<\/pre>\n<p>Brug ark og s\u00f8g efter m\u00f8nster. Den (.) Vil matche strenge indeholder loc , localhost i eksemplet nedenfor.<\/p>\n<pre>$ awk '\/l.c\/{print}' \/etc\/hosts \n127.0.0.1 localhost \n::1 ip6-localhost ip6-loopback \nfe00::0 ip6-localnet<\/pre>\n<pre>$ awk '\/l*c\/{print}' \/etc\/localhost \n127.0.0.1 localhost \n# The following lines are desirable for IPv6 capable hosts \n::1 ip6-localhost ip6-loopback \nfe00::0 ip6-localnet \nff00::0 ip6-mcastprefix<\/pre>\n<p>Brug ark til at finde set af tegn. [] Dette eksempel [al1] vil ark matche alle tekster med disse tegn\u00a0<strong>a<\/strong>\u00a0eller\u00a0<strong>l<\/strong>\u00a0eller\u00a0<strong>1<\/strong>\u00a0i filen \/etc\/hosts<\/p>\n<pre>$ awk '\/[al1]\/{print}' \/etc\/hosts \n127.0.0.1 localhost \n# The following lines are desirable for IPv6 capable hosts \n::1 ip6-localhost ip6-loopback \nfe00::0 ip6-localnet \nff00::0 ip6-mcastprefix \nff02::1 ip6-allnodes \nff02::2 ip6-allrouters<\/pre>\n<p>Dette eksempel matcher vi tekst som starter med K eller k efterfulgt af tegnet T<\/p>\n<pre>$ awk '\/[Kk]T\/{print}' \/etc\/hosts \n192.168.3.5 KTech-lab\n<\/pre>\n<p>Du kan ogs\u00e5 specificere en range af tegn. Ark forst\u00e5r disse typer.<\/p>\n<ol>\n<li><code>[0-9]&lt;(code&gt; et enkelt nummer. <\/code><\/li>\n<li><code>[a-z] Et enkelt tegn. <\/code><\/li>\n<li><code>[A-Z] Et enkelt stort tegn. <\/code><\/li>\n<li><code>[a-zA-Z] Et enkelt tegn lille eller stort. <\/code><\/li>\n<li><code>[a-zA-Z 0-9] Et enkelt tegn eller nummer. <\/code><\/li>\n<\/ol>\n<p>Her er nogle eksempler.<\/p>\n<pre><code>$ awk '\/[0-9]\/{print}' \/etc\/hosts 127.0.0.1 localhost \n# The following lines are desirable for IPv6 capable hosts \n::1 ip6-localhost ip6-loopback \nfe00::0 ip6-localnet \nff00::0 ip6-mcastprefix \nff02::1 ip6-allnodes \nff02::2 ip6-allrouters<code><\/code><\/code><\/pre>\n<p>Alle disse linjer bliver vist fordi de indeholder mindst et tal i dette eksempel<\/p>\n<pre>$ awk '\/[0-2]\/{print}' \/etc\/hosts \n127.0.0.1 localhost \n::1 ip6-localhost ip6-loopback \nfe00::0 ip6-localnet \nff00::0 ip6-mcastprefix \nff02::1 ip6-allnodes \nff02::2 ip6-allrouters<\/pre>\n<p>Alle disse linjer bliver vist fordi de indeholder tal mellem <strong>0<\/strong> og <strong>2<\/strong>.<\/p>\n<p>Brug ark med (^) Meta Character til at finde tekst som matcher begyndelse af linjerne i filen.<\/p>\n<pre><code>$ awk '\/^fe\/{print}' \/etc\/hosts \nfe00::0 ip6-localnet <\/code><\/pre>\n<p>Denne linje bliver vist fordi den starter med <strong>fe<\/strong><\/p>\n<pre><code>$ awk '\/^ff\/{print}' \/etc\/hosts \nff00::0 ip6-mcastprefix \nff02::1 ip6-allnodes \nff02::2 ip6-allrouters <\/code><\/pre>\n<p>Brug ark med ($) Meta Character til at finde tekst som matcher slutningen af linjerne i filen. Det matcher alle linjer som ender med det vi s\u00f8ger efter.<\/p>\n<pre><code>$ awk '\/rs$\/{print}' \/etc\/hosts \nff02::2 ip6-allrouters <\/code><\/pre>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<pre><code><\/code><\/pre>\n<div class=\"pvc_clear\"><\/div>\n<p id=\"pvc_stats_278\" class=\"pvc_stats all  \" data-element-id=\"278\" style=\"\"><i class=\"pvc-stats-icon medium\" aria-hidden=\"true\"><svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"far\" data-icon=\"chart-bar\" role=\"img\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 512 512\" class=\"svg-inline--fa fa-chart-bar fa-w-16 fa-2x\"><path fill=\"currentColor\" d=\"M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z\" class=\"\"><\/path><\/svg><\/i> <img loading=\"lazy\" decoding=\"async\" width=\"16\" height=\"16\" alt=\"Loading\" src=\"https:\/\/www.linuxboxen.dk\/wp-content\/plugins\/page-views-count\/ajax-loader-2x.gif\" border=0 \/><\/p>\n<div class=\"pvc_clear\"><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Denne linje bliver vist fordi den slutter med rs Brug ark med (\\) Meta tegn Dette bruges til at beskrive hvadawk Brug m\u00f8nster scanning og tekst behandling sprog. Parametre -f l\u00e6s AWK program fra fil. -S K\u00f8r i sandbox. Du kan ikke udf\u00f8re system() samt redirect er disabled. &#8211;help Samt mange flere. Eksempler $ awk [&hellip;]<\/p>\n<div class=\"pvc_clear\"><\/div>\n<p id=\"pvc_stats_278\" class=\"pvc_stats all  \" data-element-id=\"278\" style=\"\"><i class=\"pvc-stats-icon medium\" aria-hidden=\"true\"><svg aria-hidden=\"true\" focusable=\"false\" data-prefix=\"far\" data-icon=\"chart-bar\" role=\"img\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 512 512\" class=\"svg-inline--fa fa-chart-bar fa-w-16 fa-2x\"><path fill=\"currentColor\" d=\"M396.8 352h22.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-192 0h22.4c6.4 0 12.8-6.4 12.8-12.8V140.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h22.4c6.4 0 12.8-6.4 12.8-12.8V204.8c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zM496 400H48V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16zm-387.2-48h22.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-22.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8z\" class=\"\"><\/path><\/svg><\/i> <img loading=\"lazy\" decoding=\"async\" width=\"16\" height=\"16\" alt=\"Loading\" src=\"https:\/\/www.linuxboxen.dk\/wp-content\/plugins\/page-views-count\/ajax-loader-2x.gif\" border=0 \/><\/p>\n<div class=\"pvc_clear\"><\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_sitemap_exclude":false,"_sitemap_priority":"","_sitemap_frequency":"","footnotes":""},"categories":[6,8],"tags":[],"class_list":["post-278","post","type-post","status-publish","format-standard","hentry","category-danskshell","category-shell"],"a3_pvc":{"activated":true,"total_views":17,"today_views":0},"_links":{"self":[{"href":"https:\/\/www.linuxboxen.dk\/index.php?rest_route=\/wp\/v2\/posts\/278","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.linuxboxen.dk\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.linuxboxen.dk\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.linuxboxen.dk\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.linuxboxen.dk\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=278"}],"version-history":[{"count":0,"href":"https:\/\/www.linuxboxen.dk\/index.php?rest_route=\/wp\/v2\/posts\/278\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.linuxboxen.dk\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=278"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.linuxboxen.dk\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=278"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.linuxboxen.dk\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=278"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}