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 sldena...@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 -- -- To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/52838851.1090...@gmail.com