{"id":32317,"date":"2022-11-17T21:41:28","date_gmt":"2022-11-17T20:41:28","guid":{"rendered":"https:\/\/www.linuxboxen.dk\/?p=32317"},"modified":"2022-11-17T21:41:28","modified_gmt":"2022-11-17T20:41:28","slug":"sed-2","status":"publish","type":"post","link":"https:\/\/www.linuxboxen.dk\/?p=32317","title":{"rendered":"sed, en stream-editor"},"content":{"rendered":"<p>sed er en stream editor. En stream-editor bruges til at udf\u00f8re grundl\u00e6ggende tekst transformationer p\u00e5 en input-stream (en fil eller input fra en pipeline). Selvom det p\u00e5 nogle m\u00e5der ligner en editor, der tillader scripted redigeringer (s\u00e5som ed), fungerer sed ved kun at f\u00e5 \u00e9n gang til at passere input(erne) og er f\u00f8lgelig mere effektiv.<\/p>\n<p>Men det evnen til at filtrere tekst i en stream fra stdio som g\u00f8r sed meget effektiv. For at bruge sed vil jeg komme med nogle eksempler her.<\/p>\n<p>Normalt bruges sed som vist her.<\/p>\n<p>sed SCRIPT INPUTFIL&#8230;<\/p>\n<p>Vi starter med hello world eksemplet.<\/p>\n<p>Her s\u00f8ger vi efter <em>hello<\/em> og skifter det ud med <em>word<\/em>. Det er den mest normale m\u00e5de sed bruges p\u00e5. Dvs vi l\u00e6ser fra input filen og hvis vi finder ordet <em>hello<\/em> skifter vi det ud med <em>world<\/em> i output filen. S\u00e5 sed bliver lige som et filter.<\/p>\n<pre class=\"example\">sed 's\/hello\/world\/' input.txt &gt; output.txt\n<\/pre>\n<p class=\"example\">Det kan ogs\u00e5 huske p\u00e5 s\u00f8g\/efter hvad\/skift det ud med\/ i din sed kommand. S\u00e5 er det nemmere at huske.<\/p>\n<p>N\u00e6ste eksempel kommer her.\u00a0 Hvis du ikke vil have en input fil og output fil, kan du bruge -i som parametre til sed det betyder den arbejder med samme fil.<\/p>\n<pre>sed -i 's\/hello\/world\/' file.txt<\/pre>\n<p>Kommandolinje Indstillinger.<\/p>\n<p>-n<br \/>\n&#8211;quiet<br \/>\n&#8211;silent<\/p>\n<p>Standard udskriver sed m\u00f8nsteret fundet i slutningen af hver cyklus gennem scriptet (se S\u00e5dan fungerer sed). Disse muligheder deaktiverer denne automatiske visning, og sed producerer kun output, n\u00e5r det udtrykkeligt bliver bedt om det via -p kommandoen.<\/p>\n<p>Her vises kun linje 45 fra fil.txt filen.<\/p>\n<pre>sed -n '45p' fil.txt<\/pre>\n<p>Her her vises f\u00f8rste linje af et.txt og den sidste linje fra filen tre.txt<\/p>\n<pre>sed -n\u00a0 '1p ; $p' et.txt to.txt tre.txt<\/pre>\n<p>Uden -e eller -f-indstillinger bruger sed den f\u00f8rste ikke-option-parameter som scriptet, og de f\u00f8lgende ikke-option-parametre som inputfiler. Hvis -e eller -f optioner bruges til at specificere et script, tages alle ikke-option parametre som inputfiler. Indstillingerne -e og -f kan kombineres og kan optr\u00e6de flere gange (i hvilket tilf\u00e6lde det endelige effektive script vil v\u00e6re sammenk\u00e6dning af alle de individuelle scripts).<\/p>\n<div class=\"example\">\n<p class=\"example\">Alle disse eksempler g\u00f8r det samme.<\/p>\n<pre class=\"example\">sed -e 's\/hello\/world\/' input.txt &gt; output.txt\nsed --expression='s\/hello\/world\/' input.txt &gt; output.txt\n\necho 's\/hello\/world\/' &gt; myscript.sed\nsed -f myscript.sed input.txt &gt; output.txt\nsed --file=myscript.sed input.txt &gt; output.txt<\/pre>\n<\/div>\n<p>&nbsp;<\/p>\n<p>&#8211;debug Viser hvordan sed behandler din foresp\u00f8rgsel<\/p>\n<p>-e script<\/p>\n<p>-f script-file<\/p>\n<p>-i<\/p>\n<p>-b\u00a0 Bin\u00e6r filer<\/p>\n<p>-s separator<\/p>\n<p>&#8211;sandbox<\/p>\n<p>-u uden buffer.<\/p>\n<p>&nbsp;<\/p>\n<p>Exit status. N\u00e5r sed exit sender den en exit kode.<\/p>\n<p>0 alt ok<br \/>\n1 komandoen kan ikke fortolkes.<br \/>\n2 input fil kan ikke \u00e5bnes.<br \/>\n4 io error.<\/p>\n<div class=\"pvc_clear\"><\/div>\n<p id=\"pvc_stats_32317\" class=\"pvc_stats all  \" data-element-id=\"32317\" 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>sed er en stream editor. En stream-editor bruges til at udf\u00f8re grundl\u00e6ggende tekst transformationer p\u00e5 en input-stream (en fil eller input fra en pipeline). Selvom det p\u00e5 nogle m\u00e5der ligner en editor, der tillader scripted redigeringer (s\u00e5som ed), fungerer sed ved kun at f\u00e5 \u00e9n gang til at passere input(erne) og er f\u00f8lgelig mere effektiv. [&hellip;]<\/p>\n<div class=\"pvc_clear\"><\/div>\n<p id=\"pvc_stats_32317\" class=\"pvc_stats all  \" data-element-id=\"32317\" 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":[5],"tags":[],"class_list":["post-32317","post","type-post","status-publish","format-standard","hentry","category-bash"],"a3_pvc":{"activated":true,"total_views":16,"today_views":0},"_links":{"self":[{"href":"https:\/\/www.linuxboxen.dk\/index.php?rest_route=\/wp\/v2\/posts\/32317","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=32317"}],"version-history":[{"count":0,"href":"https:\/\/www.linuxboxen.dk\/index.php?rest_route=\/wp\/v2\/posts\/32317\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.linuxboxen.dk\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=32317"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.linuxboxen.dk\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=32317"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.linuxboxen.dk\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=32317"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}