[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: script para renombrar archivos vía ssh no me funciona (creo que son las '"')



On 11/13/2013 10:36 AM, Flako wrote:
> Hola
> Estoy intentando renombrar archivos de forma remota vía ssh
> necesito renombrar archivos similares a 'z01_configuraMusica.conf' a
> 'configuraMusica.conf'  (sacarle el prefijo 'z01_'), necesitaria armar
> el comando:
> 
> mv -vf  z01_configuraMusica.conf   configuraMusica.conf
> 
> la idea es ejecutarlos via ssh con: ssh user@hostremoto "genero comando"
> 
> 
> La generación de comandos funciona de forma local, sin usar shh,
> cuando uso ssh parece no andar el remplazo 'z01_' por '' (supongo que
> estoy casteado de forma incorrecta las comillas)
> 
> he probado varias formas de remplazo, como:
> 
> for ii in *.conf; do ( dest=$(echo $ii|sed -e 's/z01_//'); echo mv -fv
> $ii//$dest; ) done
> for ii in *.conf; do ( dest=$(echo $ii | tr -d 'z01_'); echo mv -fv
> $ii//$dest; ) done
> for ii in *.conf; do ( dest=$(echo $ii | awk -v a="z01_"
> '{gsub(a,"",$0); print  $0}'); echo  -fv $ii -- $dest; ) done
> 
> 
> Pero al hacer:
> 
> ssh user@hostremto  "cd /path; for ii in *.conf; do ( dest=$(echo
> \$ii|sed -e 's/z01_//'); echo  -fv \$ii//\$dest; ) done"
> 
> solo me devuelve:
> z01_configuraMusica1.conf //  z01_configuraMusica1.conf
> z01_configuraMusica2.conf //  z01_configuraMusica2.conf
> z01_configuraMusica3.conf //  z01_configuraMusica3.conf
> 

  Buenas!

  El problema que tienes, es que la subshell se ejecuta en tu equipo (el
$(echo ...)), y también las variables (aunque no estoy seguro cómo se
comporte dentro del for) $ii, $dest, bash las expande en tu equipo y no
en el remoto.

  Para evitar esto, en general basta con utilizar comillas simples ('')
en lugar de dobles.

  Por otro lado, no me complicaría usando sed, lee la sección 'Parameter
Expansion' del manual de bash.

  Saludos,

> 
> como que no toma el remplazo de 'z01_' por '', la verdad que luego de
> horas de probar diferentes combinaciones de he desistido.
> Tengo un error de concepto?  como debería castear las comillas para
> hacer que funcione?
> 
> Gracias
> 
> 


-- 
Santiago López Denazis
GNU/Linux SysAdmin
sldenazis@gmail.com
Open your source, open your mind.
----
Por favor, no utilice formatos de archivo privativos para el intercambio
de documentos, como DOC y XLS, sino HTML, PDF, TXT, CSV o cualquier otro
que no obligue a utilizar un programa de un fabricante concreto. Vea
http://www.gnu.org/philosophy/no-word-attachments.es.html
--


Reply to: