{"id":72,"date":"2023-04-06T19:42:52","date_gmt":"2023-04-06T17:42:52","guid":{"rendered":"https:\/\/www.cajondesastres.net\/?p=72"},"modified":"2023-04-06T19:42:52","modified_gmt":"2023-04-06T17:42:52","slug":"lectura-de-un-fichero-para-usar-su-contenido-como-parametro-para-otros-comandos","status":"publish","type":"post","link":"https:\/\/www.cajondesastres.net\/?p=72","title":{"rendered":"Lectura de un fichero para usar su contenido como par\u00e1metro para otros comandos."},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Leyendo el fichero que se indica como entrada en &lt;soloNombres.txt:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para cada l\u00ednea la muestra en pantalla.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">while read p; do echo &#8220;$p&#8221;; done &lt;soloNombres.txt<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Podemos completar el comando con un condicional del tipo, si existe el fichero haz&#8230;. Para ello reemplazamos el do echo$ del ejemplo anterior por la prueba de si existe o no un fichero.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">  if [ -f &#8220;nombre.CR2&#8221; ]; then echo &#8220;nombre.CR2&#8221;;fi;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El condicional if comprueba si [-f &#8220;nombre.CR2&#8221;] existe (verdadero) y en dicho caso ejecuta el &#8220;echo&#8221;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si lo combinamos con el comando anterior y en lugar del &#8220;nombre.CR2&#8221; comprobamos si existe cada l\u00ednea del fichero terminada en .CR2<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">while read p; do if [ -f &#8220;$p.CR2&#8221; ]; then echo &#8220;$p&#8221;;fi; done &lt;soloNombres.txt<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La ejecuci\u00f3n imprimir\u00e1 una l\u00ednea por cada l\u00ednea del fichero soloNombres.txt que exista en el directorio actual con la extensi\u00f3n .CR2<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El condicional podemos completarlo para que haga m\u00e1s cosas, por ejemplo mover un fichero cuyo nombre coincida con la l\u00ednea del fichero y que se encuentre en otra ruta al local y tenga extensi\u00f3n jpg al directorio actual y borre el fichero del directorio actual con extensi\u00f3n CR2<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">while read p; do if [ -f &#8220;\/drives\/z\/otra\/ruta\/$p.jpg&#8221; ]; then cp &#8220;\/drives\/z\/otra\/ruta\/$p.jpg&#8221; .; rm &#8220;$p.CR2&#8221;;fi; done &lt;soloNombres.txt<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En mi caso par construir el fichero soloNombres.txt he usado dos comandos en el directorio actual (donde se encuentran los CR2)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para sacar la relaci\u00f3n de los ficheros CR2, cada l\u00ednea quedar\u00e1 como nombre.cr2<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"> xxxxx.cr2<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">ls -lha *.cr2 |awk &#8216;{print $9}&#8217; >cr2.txt<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para quedarme solamente con el nombre del fichero, sin la extensi\u00f3n:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">cat cr2.txt |awk -F &#8220;.&#8221; &#8216;{print $1}&#8217;>soloNombres.txt<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Leyendo el fichero que se indica como entrada en &lt;soloNombres.txt: Para cada l\u00ednea la muestra en pantalla. while read p; do echo &#8220;$p&#8221;; done &lt;soloNombres.txt Podemos completar el comando con un condicional del tipo, si existe el fichero haz&#8230;. Para ello reemplazamos el do echo$ del ejemplo anterior por la prueba de si existe o &hellip; <a href=\"https:\/\/www.cajondesastres.net\/?p=72\" class=\"more-link\">Seguir leyendo <span class=\"screen-reader-text\">Lectura de un fichero para usar su contenido como par\u00e1metro para otros comandos.<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,7],"tags":[],"class_list":["post-72","post","type-post","status-publish","format-standard","hentry","category-informatica","category-linux"],"_links":{"self":[{"href":"https:\/\/www.cajondesastres.net\/index.php?rest_route=\/wp\/v2\/posts\/72","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.cajondesastres.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.cajondesastres.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.cajondesastres.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.cajondesastres.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=72"}],"version-history":[{"count":1,"href":"https:\/\/www.cajondesastres.net\/index.php?rest_route=\/wp\/v2\/posts\/72\/revisions"}],"predecessor-version":[{"id":73,"href":"https:\/\/www.cajondesastres.net\/index.php?rest_route=\/wp\/v2\/posts\/72\/revisions\/73"}],"wp:attachment":[{"href":"https:\/\/www.cajondesastres.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=72"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.cajondesastres.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=72"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.cajondesastres.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=72"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}