{"id":7833,"date":"2018-08-28T09:09:38","date_gmt":"2018-08-28T07:09:38","guid":{"rendered":"http:\/\/giusseppe.net\/blog\/?p=7833"},"modified":"2020-04-16T12:05:07","modified_gmt":"2020-04-16T10:05:07","slug":"multicopy-sh","status":"publish","type":"post","link":"https:\/\/www.giusseppe.net\/blog\/archivo\/2018\/08\/28\/multicopy-sh\/","title":{"rendered":"multicopy.sh"},"content":{"rendered":"<p>Otro de esos <a href=\"http:\/\/giusseppe.net\/blog\/archivo\/category\/proyectos\/programable\/\">programas<\/a> para demostrar que la programaci\u00f3n puede ser tan absurda como la poes\u00eda.<\/p>\n<p>En esta ocasi\u00f3n, el c\u00f3digo simplemente realiza 27 copias (las que se decida en funci\u00f3n de un par\u00e1metro incluido en el mismo) de un archivo dado su nombre y su extensi\u00f3n.<\/p>\n<p>No sirve para mucho m\u00e1s, pero puede ser \u00fatil para saber c\u00f3mo realizar bucles \u00abfor\u00bb con bash (shell script) y tambi\u00e9n para recordar c\u00f3mo se usa \u00abprintf\u00bb como herramienta para crear cadenas nuevas (a modo de <a href=\"https:\/\/www.tutorialspoint.com\/c_standard_library\/c_function_sprintf.htm\" target=\"_blank\" rel=\"noopener noreferrer\">sprintf<\/a> o para escribir a la salida estandar.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">#!\/bin\/bash \r\nnombre=\"27signos\" \r\nextension=\"odt\" \r\nnombreoriginal=$(printf '%s.%s' \"$nombre\" \"$extension\") \r\n\r\nfor ((i=1; i&lt;28; i++)); \r\ndo fichero=$(printf '%s_%02d.%s' \"$nombre\" \"$i\" \"$extension\") \r\necho -e $(printf \"Fichero original |||%s||| copiado |||%s|||\" \"$nombreoriginal\" \"$fichero\") \r\ncp $nombreoriginal $fichero \r\ndone<\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Otro de esos programas para demostrar que la programaci\u00f3n puede ser tan absurda como la poes\u00eda. En esta ocasi\u00f3n, el c\u00f3digo simplemente realiza 27 copias (las que se decida en funci\u00f3n de un par\u00e1metro incluido en el mismo) de un archivo dado su nombre y su extensi\u00f3n. No sirve para mucho m\u00e1s, pero puede ser &#8230; <a title=\"multicopy.sh\" class=\"read-more\" href=\"https:\/\/www.giusseppe.net\/blog\/archivo\/2018\/08\/28\/multicopy-sh\/\">Read more<span class=\"screen-reader-text\">multicopy.sh<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[232,128],"tags":[],"class_list":["post-7833","post","type-post","status-publish","format-standard","hentry","category-programable","category-proyectos"],"_links":{"self":[{"href":"https:\/\/www.giusseppe.net\/blog\/wp-json\/wp\/v2\/posts\/7833","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.giusseppe.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.giusseppe.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.giusseppe.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.giusseppe.net\/blog\/wp-json\/wp\/v2\/comments?post=7833"}],"version-history":[{"count":4,"href":"https:\/\/www.giusseppe.net\/blog\/wp-json\/wp\/v2\/posts\/7833\/revisions"}],"predecessor-version":[{"id":9023,"href":"https:\/\/www.giusseppe.net\/blog\/wp-json\/wp\/v2\/posts\/7833\/revisions\/9023"}],"wp:attachment":[{"href":"https:\/\/www.giusseppe.net\/blog\/wp-json\/wp\/v2\/media?parent=7833"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.giusseppe.net\/blog\/wp-json\/wp\/v2\/categories?post=7833"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.giusseppe.net\/blog\/wp-json\/wp\/v2\/tags?post=7833"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}