{"id":830,"date":"2011-06-25T21:39:31","date_gmt":"2011-06-25T19:39:31","guid":{"rendered":"http:\/\/blog.sfsoft.it\/?p=830"},"modified":"2011-06-25T21:39:31","modified_gmt":"2011-06-25T19:39:31","slug":"modifica-di-un-file-tramite-bash","status":"publish","type":"post","link":"https:\/\/www.sfsoft.it\/blog\/2011\/06\/25\/modifica-di-un-file-tramite-bash\/","title":{"rendered":"Modifica di un file tramite bash"},"content":{"rendered":"<p>Se c&#8217;\u00e8 la necessit\u00e0 di modificare un file testuale tramite <em>script bash<\/em> \u00e8 possibile utilizzare il comando <a href=\"http:\/\/unixhelp.ed.ac.uk\/CGI\/man-cgi?sed\" target=\"_blank\">sed<\/a><\/p>\n<p>Un esempio di uno <em>script<\/em><\/p>\n<p>[bash]<br \/>\n#!\/bin\/bash<br \/>\nsed &quot;s\/pippo\/pluto\/g&quot; \/home\/utente\/miofile &gt; \/home\/utente\/miofile.new<br \/>\nmv \/home\/utente\/miofile \/home\/utente\/miofile.bak<br \/>\nmv \/home\/utente\/miofile.new \/home\/utente\/miofile<br \/>\n[\/bash]<\/p>\n<p>La sintassi da usare \u00e8 la seguente<\/p>\n<ul>\n<li>il primo parametro include le istruzioni su cosa modificare\n<ul>\n<li>in questo esempio ho usato la sostituzione ( s\/ ) che di solito \u00e8 quello usato pi\u00f9 spesso<\/li>\n<li>le due barre ( \/ ) servono a delimitare le opzioni di ricerca e sostituzione<\/li>\n<li>il primo indica cosa cercare ( pippo )<\/li>\n<li>il secondo con cosa sostituire ( pluto )<\/li>\n<li>per ultimo il carattere di chiusura ( \/g )<\/li>\n<li>in caso nel testo da cercare ci fosse un doppio apice ( &#8221; ) basta usare davanti la barra opposta ( \\&#8221; ), esempio <em>sed &#8220;s\/stato\\&#8221;ok\\&#8221;\/stato\\&#8221;ko\\&#8221;\/g&#8221; &#8230;.<\/em><\/li>\n<\/ul>\n<\/li>\n<li>il secondo parametro indica il file da usare come origine della ricerca<\/li>\n<li>il terzo parametro dopo il re-indirizzamento output ( &gt; ) indica dove salvare il risultato delle operazioni<\/li>\n<li>nello script ho anche aggiunto dei comandi che si occupano di rinominare il file originale come copia di backup ( .bak ) e poi rinominano il file di output nel nome del file originale<\/li>\n<\/ul>\n<p>Ovviamente il comando ha molti altre opzioni e tipi di utilizzo, rimando ovviamente al buon <em>man<\/em> per la documentazione.<\/p>\n<p>Di seguito volendo anche una guida introduttiva.<\/p>\n<p><a href=\"http:\/\/www.grymoire.com\/Unix\/Sed.html\" target=\"_blank\">http:\/\/www.grymoire.com\/Unix\/Sed.html<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Se c&#8217;\u00e8 la necessit\u00e0 di modificare un file testuale tramite script bash \u00e8 possibile utilizzare il comando sed Un esempio di uno script [bash] #!\/bin\/bash sed &quot;s\/pippo\/pluto\/g&quot; \/home\/utente\/miofile &gt; \/home\/utente\/miofile.new mv \/home\/utente\/miofile \/home\/utente\/miofile.bak mv \/home\/utente\/miofile.new \/home\/utente\/miofile [\/bash] La sintassi da usare \u00e8 la seguente il primo parametro include le istruzioni su cosa modificare in questo [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[15,3],"tags":[52,16,8],"_links":{"self":[{"href":"https:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/posts\/830"}],"collection":[{"href":"https:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/comments?post=830"}],"version-history":[{"count":4,"href":"https:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/posts\/830\/revisions"}],"predecessor-version":[{"id":834,"href":"https:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/posts\/830\/revisions\/834"}],"wp:attachment":[{"href":"https:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/media?parent=830"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/categories?post=830"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sfsoft.it\/blog\/wp-json\/wp\/v2\/tags?post=830"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}