{"id":2279,"date":"2008-03-29T17:09:37","date_gmt":"2008-03-29T15:09:37","guid":{"rendered":"http:\/\/mummila.net\/vuorovaikutus\/2008\/03\/29\/skandinaavisten-kirjainten-korvaaminen-tiedostonimissa\/"},"modified":"2010-09-23T16:59:48","modified_gmt":"2010-09-23T13:59:48","slug":"skandinaavisten-kirjainten-korvaaminen-tiedostonimissa","status":"publish","type":"post","link":"https:\/\/mummila.net\/nuudelisoppa\/2008\/03\/29\/skandinaavisten-kirjainten-korvaaminen-tiedostonimissa\/","title":{"rendered":"[Ratkaisu] Skandinaavisten kirjainten korvaaminen tiedostonimiss\u00e4"},"content":{"rendered":"<dl>\n<dt>L\u00e4ht\u00f6kohta<\/dt>\n<dd>Minulla on joukko tiedostoja joiden nimiss\u00e4 on \u00e4- ja \u00f6-kirjaimia. Kaikki tiedostonimet koostuvat yksinomaan pienist\u00e4 kirjaimista, eli kirjainmerkeist\u00e4 a-\u00f6. Haluan muuntaa nimet siten, ett\u00e4 \u00e4:t korvautuvat a-kirjaimilla ja \u00f6:t o-kirjaimilla. Aion k\u00e4ytt\u00e4\u00e4 muuntamiseen <code>tr<\/code>-komentoa.<\/dd>\n<dt>Ongelma<\/dt>\n<dd>Tr-komento tulkitsee sille antamiani skandinaavisia kirjaimia sis\u00e4lt\u00e4vi\u00e4 muunnoss\u00e4\u00e4nt\u00f6j\u00e4 v\u00e4\u00e4rin ja ennalta-arvaamattomalla vaikuttavalla tavalla. Seuraavassa on t\u00e4st\u00e4 esimerkkej\u00e4:<\/p>\n<blockquote>\n<pre><code>$ echo tiedostonnimi-jossa-on-\u00e4 | tr \u00e4 a\ntiedostonnimi-jossa-on-aa\n$ echo tiedostonnimi-jossa-on-\u00e4\u00e4 | tr \u00e4 a\ntiedostonnimi-jossa-on-aaaa\n$ echo tiedostonnimi-jossa-on-\u00e4\u00f6 | tr \u00e4 a | tr \u00f6 o\ntiedostonnimi-jossa-on-aaao\n$ echo tiedostonnimi-jossa-on-\u00f6\u00f6 | tr \u00e4 a | tr \u00f6 o\ntiedostonnimi-jossa-on-aoao\n$ echo tiedostonnimi-jossa-on-\u00f6\u00e4 | tr \u00e4 a | tr \u00f6 o\ntiedostonnimi-jossa-on-aoaa\n<\/code><\/pre>\n<\/blockquote>\n<\/dd>\n<dt>Ongelman syy<\/dt>\n<dd>Tr-komento ei tue komentotulkissani k\u00e4yt\u00f6ss\u00e4 olevaa UTF-8 -koodausta.<\/dd>\n<dt>Ratkaisu<\/dt>\n<dd>K\u00e4yt\u00e4n tr-komennon sijasta <code>sed<\/code>-komentoa skandinaavisten kirjainten muuntamiseen, seuraavalla tavalla:<\/p>\n<blockquote>\n<pre><code>for file in *\u00e4*; do mv $file `echo $file | sed -e 's\/\u00e4\/a\/g'`; done\nfor file in *\u00f6*; do mv $file `echo $file | sed -e 's\/\u00f6\/o\/g'`; done<\/code><\/pre>\n<\/blockquote>\n<\/dd>\n<\/dl>\n","protected":false},"excerpt":{"rendered":"<p>Tr-komento tulkitsee sille antamiani skandinaavisia kirjaimia sis\u00e4lt\u00e4vi\u00e4 muunnoss\u00e4\u00e4nt\u00f6j\u00e4 v\u00e4\u00e4rin, kun yrit\u00e4n muuntaa ne l\u00e4himmiksi vastineikseen. Ratkaisu on k\u00e4ytt\u00e4\u00e4 sed-komentoa tr-komennon sijasta.<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-2279","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/mummila.net\/nuudelisoppa\/wp-json\/wp\/v2\/posts\/2279","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mummila.net\/nuudelisoppa\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mummila.net\/nuudelisoppa\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mummila.net\/nuudelisoppa\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mummila.net\/nuudelisoppa\/wp-json\/wp\/v2\/comments?post=2279"}],"version-history":[{"count":1,"href":"https:\/\/mummila.net\/nuudelisoppa\/wp-json\/wp\/v2\/posts\/2279\/revisions"}],"predecessor-version":[{"id":2359,"href":"https:\/\/mummila.net\/nuudelisoppa\/wp-json\/wp\/v2\/posts\/2279\/revisions\/2359"}],"wp:attachment":[{"href":"https:\/\/mummila.net\/nuudelisoppa\/wp-json\/wp\/v2\/media?parent=2279"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mummila.net\/nuudelisoppa\/wp-json\/wp\/v2\/categories?post=2279"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mummila.net\/nuudelisoppa\/wp-json\/wp\/v2\/tags?post=2279"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}