Cambiar nombres irregulares con Automator - Comunidad Macuarium

Comunidad Macuarium: Cambiar nombres irregulares con Automator - Comunidad Macuarium

Ir a contenido

  • 2 Páginas +
  • 1
  • 2
  • No puedes empezar un nuevo tema
  • No puedes responder a este tema

Options
Cambiar nombres irregulares con Automator

#1 Usuario offline   lucajero 

  • Usuario
  • Pip
  • Buscar Temas
  • Grupo: Usuarios
  • Mensajes: 59
  • Registrado: 04-octubre 13

Publicado 13 julio 2017 - 08:31

Buenos dias, Comunidad.
Uso con frecuencia el Automator para renombrar archivos masivamente, sin embargo no encuentro la solución a la siguiente dificultad: tengo un conjunto de archivos cuyos nombres comienzan con dos dígitos y un espacio antes del nombre, y otros comienzan con tres dígitos y un espacio antes del nombre. Mi intención es eliminar esos dígitos y espacio, respetando el nombre que está a continuación. ¿Hay solución para esto?
Muchas gracias, comunitarios.

#2 Usuario offline   APB 

  • Usuario Contínuo
  • PipPipPipPip
  • Buscar Temas
  • Grupo: Usuarios Activos
  • Mensajes: 5.323
  • Registrado: 01-septiembre 04

Publicado 13 julio 2017 - 09:18

Un pequeño script para hacerlo:
tell application "Finder"
	set llista_items to entire contents of (choose folder)
	set AppleScript's text item delimiters to the " "
	repeat with un_item in llista_items as item
		set the name of un_item to (rest of text items of (name of un_item as text) as string)
	end repeat
end tell


Como ya sabrás puedes añadir parte del script para que funcione con tu rutina de Automator. Como es lógico deberás ajustar y eliminar las partes que ya haga tu rutina.

El script funciona sin necesidad de añadirlo al Automator, por si no quedaba claro.
Como siempre recomiendo, probarlo antes con unos pocos archivos duplicados para asegurarse que haga lo pedido.

Este tema ha sido editado por APB: 13 julio 2017 - 09:23


#3 Usuario offline   lucajero 

  • Usuario
  • Pip
  • Buscar Temas
  • Grupo: Usuarios
  • Mensajes: 59
  • Registrado: 04-octubre 13

Publicado 13 julio 2017 - 11:20

Gracias, APB. No he usado jamás scripts, así que ahora me toca documentarme sobre esto. En cuanto ponga en práctica tu solución, te comentaré.

#4 Usuario offline   APB 

  • Usuario Contínuo
  • PipPipPipPip
  • Buscar Temas
  • Grupo: Usuarios Activos
  • Mensajes: 5.323
  • Registrado: 01-septiembre 04

Publicado 13 julio 2017 - 11:33

Para usarlo sin el Automator solo tienes que copiarlo en el Editor de Scripts, o Editor de AppleScripts si tu OS es viejo, y ejecutarlo.

Este tema ha sido editado por APB: 13 julio 2017 - 11:35


#5 Usuario offline   lucajero 

  • Usuario
  • Pip
  • Buscar Temas
  • Grupo: Usuarios
  • Mensajes: 59
  • Registrado: 04-octubre 13

Publicado 14 julio 2017 - 09:44

¡Sublime, APB! No me lo imaginaba. Lo que sí imagino es que dominar ese lenguaje debe ser complicado ¿verdad?, porque intuyo que el script que me has pasado lo has escrito en un plus-plas, para solucionar mi problema específico y que si me surgiera otro de parecidas características, tendría que modificar ese script ¿cierto?.
Te estoy muy agradecido y quisiera saber casi tanto como tú. Imagen publicada Un cordial saludo.

#6 Usuario offline   Kikelon 

  • Usuario Activo
  • PipPipPip
  • Buscar Temas
  • Grupo: Usuarios Activos
  • Mensajes: 1.509
  • Registrado: 09-enero 09

Publicado 14 julio 2017 - 11:10

En bash está tirado:

Cita

ls -1 <patrón_del fichero>|while read fichero;do nuevo_nombre=$(cat $fichero|cut -d" " -f2-);mv $fichero $nuevo_nombre;done


Por ejemplo, imagina que todos tus ficheros son '12 foto1', '356 foto2', etc y están en la ruta /tmp

pues en la linea de comandos sería:

Cita

ls -1 /tmp/*foto*|while read fichero;do nuevo_nombre=$(cat $fichero|cut -d" " -f2-);mv $fichero $nuevo_nombre;done


Haz primero una prueba del 'ls' para ver que te sale una lista limpia, algo parecido a esto:

Cita

[root@servidor user1] SERVIDOR# ls -1 datos*
datosabril17.tar.gz
datosagosto16.tar.gz
datosDiciembre15.tar.gz
datosEnero16.tar.gz
datosfebrero17.tar.gz
datosjulio16.tar.gz
datosjunio16.tar.gz
datosjunio17.tar.gz
datosMarzo15.tar.gz
datosmarzo17.tar.gz
datosmayo17.tar.gz
datosNoviembre15.tar.gz
datosOctubre15.tar.gz
datosseptiembre16.tar.gz



#7 Usuario offline   APB 

  • Usuario Contínuo
  • PipPipPipPip
  • Buscar Temas
  • Grupo: Usuarios Activos
  • Mensajes: 5.323
  • Registrado: 01-septiembre 04

Publicado 14 julio 2017 - 11:30

Evidentemente cada script sirve para algo específico y se ha de modificar el script si las necesidades cambian.

No es difícil controlar AppleScript, fíjate que procuraron que las instrucciones fueran frases "normales" en inglés. Hay unas pocas instrucciones y respetar un orden básico. Con leerte algún manual de Apple y ver varios scripts hechos por otros ya los entenderás y podrás empezar a modificarlos para que hagan lo que tu quieras. Además en internet encontrarás muchas soluciones a los pequeños problemas que te encuentres, cuando sepas que buscar.

Este tema ha sido editado por APB: 14 julio 2017 - 11:35


#8 Usuario offline   lucajero 

  • Usuario
  • Pip
  • Buscar Temas
  • Grupo: Usuarios
  • Mensajes: 59
  • Registrado: 04-octubre 13

Publicado 14 julio 2017 - 12:51

Ya estoy en ello, APB: me he descargado un manual básico y empiezo a bucear.

Kikelon, probaré tu método. Todo lo que sea aprender no es tiempo perdido. Te comentaré.

A ambos, mi agradecimiento. "You'll never walk alone", dicen los del Liverpool.

#9 Usuario offline   Kikelon 

  • Usuario Activo
  • PipPipPip
  • Buscar Temas
  • Grupo: Usuarios Activos
  • Mensajes: 1.509
  • Registrado: 09-enero 09

Publicado 14 julio 2017 - 01:27

Ver Mensajelucajero, en 14 July 2017 - 12:51 PM, dijo:

Ya estoy en ello, APB: me he descargado un manual básico y empiezo a bucear.

Kikelon, probaré tu método. Todo lo que sea aprender no es tiempo perdido. Te comentaré.

A ambos, mi agradecimiento. "You'll never walk alone", dicen los del Liverpool.


La ventaja de bash es que lo que aprendas te servirá para linux y cualquier otro Unix.
Todo lo que sea modificar textos de listas o ficheros en bash se resuelve muy bien. En todo caso yo compré un programa que me gustó mucho que modificaba metadatos también en lote, me permitió recuperar 600 fotos y volver a meter los metadatos de fecha a partir del nombre del fichero, es muy potente, se llama Better Rename, yo compré la versión 9, ahora está la 10, y por 21,99€ te da una potencia increible. Si vas a trabajar mucho con ficheros igual te interesa algo más gráfico que te ahorre la curva de aprender a manipular texto con scripts.

Por cierto, en mi comando, si antes de cambiar de nombre quieres ver como saldría, puedes cambiar el 'mv' por un 'echo', así te mostraría el nombre antiguo y el nombre nuevo (separados por un corchete para mejor visualización):

Cita

ls -1 /tmp/*foto*|while read fichero;do nuevo_nombre=$(cat $fichero|cut -d" " -f2-);echo "$fichero # $nuevo_nombre";done

Este tema ha sido editado por Kikelon: 14 julio 2017 - 01:31


#10 Usuario offline   APB 

  • Usuario Contínuo
  • PipPipPipPip
  • Buscar Temas
  • Grupo: Usuarios Activos
  • Mensajes: 5.323
  • Registrado: 01-septiembre 04

Publicado 15 julio 2017 - 10:16

Por si te sirve de guía añado el mismo script con explicaciones y separando la "instrucción condensada" en pequeñas instrucciones más fáciles de entender.

tell application "Finder" --Llama a la aplicación Finder
	set lista_items to entire contents of (choose folder) --Pide que selecciones una carpeta y crea una lista de todo su contenido
	set AppleScript's text item delimiters to the " " --Asigna un espacio en blanco como la referencia para dividir un texto en una lista 
	repeat with un_item in lista_items as item --Bucle con todos los items de la lista de la carpeta
		--set the name of un_item to (rest of text items of (name of un_item as text) as string) --Instrucción condensada
		set nombre_archivo to name of un_item as text --Asigna a una variable el nombre del item actual
		set lista_nombre to text items of nombre_archivo --Crea una lista con las partes del nombre del archivo que estaban separadas por un espacio. Los espacios no se incluyen en la lista
		set lista_nombre to rest of lista_nombre --Crea una lista, usando la misma variable, con todos los items de la lista excepto el primero
		set nombre_archivo to lista_nombre as string --Convierte la lista en una cadena de texto y la asigna a una variable. Al hacerlo se añaden los espacios entre los diferentes items de la lista
		set the name of un_item to nombre_archivo --Asigna el nombre modificado al item actual
	end repeat
end tell


Como verás si copias la instrucción en el editor los guiones dobles sirven para convertir el resto del texto de esa línea en comentario y, por lo tanto, es ignorado por el editor.
Personalmente creo las variables siempre con un guion bajo para evitar que su nombre coincida con alguna instrucción.

Este tema ha sido editado por APB: 15 julio 2017 - 10:27


#11 Usuario offline   lucajero 

  • Usuario
  • Pip
  • Buscar Temas
  • Grupo: Usuarios
  • Mensajes: 59
  • Registrado: 04-octubre 13

Publicado 15 julio 2017 - 10:37

¡EFICACIA, se llama esa figura!
Gracias, APB. Te mereces unas buenas vacaciones.

#12 Usuario offline   lucajero 

  • Usuario
  • Pip
  • Buscar Temas
  • Grupo: Usuarios
  • Mensajes: 59
  • Registrado: 04-octubre 13

Publicado 15 julio 2017 - 12:11

Hola Kikelon. He intentado probar tu sugerencia y me da el siguiente error:-bash: syntax error near unexpected token `do'
He mirado la lista de comandos y no figura ese. ¿Qué puede ser?

#13 Usuario offline   APB 

  • Usuario Contínuo
  • PipPipPipPip
  • Buscar Temas
  • Grupo: Usuarios Activos
  • Mensajes: 5.323
  • Registrado: 01-septiembre 04

Publicado 15 julio 2017 - 03:21

Revisa la instrucción que has escrito, sobre todo los espacios en blanco de más.

El "do" forma parte de la instrucción "while", en formato no lineal sería algo así (puedo haber cometido algún error dada mi inexperiencia en este lenguaje):

while la_condición;
do
     instrucción_1
     instrucción_2
     instrucción_3
done

Este tema ha sido editado por APB: 15 julio 2017 - 04:01


#14 Usuario offline   lucajero 

  • Usuario
  • Pip
  • Buscar Temas
  • Grupo: Usuarios
  • Mensajes: 59
  • Registrado: 04-octubre 13

Publicado 16 julio 2017 - 08:07

Hola, APB. Como no tengo ninguna experiencia en comandos del sistema, me limité a copiar-pegar la sugerencia de Kikelon, que era la siguiente:

En bash está tirado:<br style="color: rgb(28, 40, 55); font-family: arial, tahoma, verdana, sans-serif;">Cita

ls -1 <patrón_del fichero>|while read fichero;do nuevo_nombre=$(cat $fichero|cut -d" " -f2-);mv $fichero $nuevo_nombre;done





que aplicado en el Terminal, resultó esto:




iMac-de-Luis-Carlos-Jerez-Roquero:~ luiscarlosjerezroquero$ cd Prueba

iMac-de-Luis-Carlos-Jerez-Roquero:Prueba luiscarlosjerezroquero$ ls

00004 Classic Piano Gala.mp3

0003 Vagabundo.mp3

002 The First Time Ever I Saw Your Face.mp3

005 Only Sixteen.mp3

006 Whispering Bells.mp3

01 Classic Piano Gala.mp3

041 Rain And Tears.mp3

05 We Shall Dance.mp3

06 Classic Piano Gala.mp3

06666 Como Violetas.mp3

5 El Amor Te Hace Linda.mp3

iMac-de-Luis-Carlos-Jerez-Roquero:Prueba luiscarlosjerezroquero$ ls -1 <patrón_del fichero>|while read fichero;do nuevo_nombre=$(cat $fichero|cut -d" " -f2-);mv $fichero $nuevo_nombre;done

-bash: syntax error near unexpected token `do'




Si ves la anomalía, te agradecería me la indicases.



#15 Usuario offline   APB 

  • Usuario Contínuo
  • PipPipPipPip
  • Buscar Temas
  • Grupo: Usuarios Activos
  • Mensajes: 5.323
  • Registrado: 01-septiembre 04

Publicado 16 julio 2017 - 01:56

Es que has de ajustar el <patrón_del fichero> a tus ficheros.

Si ya lo ejecutas desde la carpeta supongo que debería ser:
ls -1 *.mp3|while read fichero;do nuevo_nombre=$(cat $fichero|cut -d" " -f2-);mv $fichero $nuevo_nombre;done


Me ha dado por probarlo y falla, no por el "do" sino por no encontrar los documentos sin la parte cortada. Seguramente será una tontería pero no sé lo suficiente para detectarla.

Este tema ha sido editado por APB: 16 julio 2017 - 07:29


#16 Usuario offline   lucajero 

  • Usuario
  • Pip
  • Buscar Temas
  • Grupo: Usuarios
  • Mensajes: 59
  • Registrado: 04-octubre 13

Publicado 16 julio 2017 - 06:51

Encomiable tu interés por ayudar. Yo he copiado-pegado tu sentencia y la he ejecutado, pero ahora me protesta por:ls: /*.mp3: No such file or directory.
Trataré de buscar la sintaxis del comando, a ver qué es lo que falta.
Agradezco sinceramente tu esfuerzo, APB.

#17 Usuario offline   APB 

  • Usuario Contínuo
  • PipPipPipPip
  • Buscar Temas
  • Grupo: Usuarios Activos
  • Mensajes: 5.323
  • Registrado: 01-septiembre 04

Publicado 16 julio 2017 - 07:20

Debes añadir la dirección de la dicha carpeta antes de "*.mp3". Si arrastras la carpeta Terminal te escribirá la dirección que debes copiar. O trasladarte a dicha carpeta mediante el comando "cd" y ejecutarlo tal cual.


PD: He modificado la instrucción anterior para eliminar la "/" de la dirección.

Este tema ha sido editado por APB: 16 julio 2017 - 07:31


#18 Usuario offline   lucajero 

  • Usuario
  • Pip
  • Buscar Temas
  • Grupo: Usuarios
  • Mensajes: 59
  • Registrado: 04-octubre 13

Publicado 16 julio 2017 - 08:43

Cuando abro Terminal y hago ls, veo todas las carpetas de ese nivel, entre las que se encuentra "Prueba", que es donde tengo los datos a modificar.
A continuación hago cd Prueba y otro ls, que me muestra todos los ítems que he de modificar, luego... estoy en la carpeta objeto.
Seguidamente "pego" la ristra de comando y ejecuto, produciéndose el error ya mencionado.
Hago ls para comprobar que sigo en la carpeta, como así es.
Este es el procedimiento que he hecho en todas las intentonas. Sólo que hay una diferencia de las anteriores con la última, que incluye la modificación que me has comentado, dando como resultado no sólo un mensaje, sino una sopa de ellos, ya que analiza cada palabra del nombre del ítem y lo ignora.
Adjunto resultado de Terminal:

Last login: Sun Jul 16 21:15:34 on console

iMac-de-Luis-Carlos-Jerez-Roquero:~ luiscarlosjerezroquero$ ls

00-Album Daniel 40 Daniel-Bruno.jpg

00-Album Inma 50 Desktop

00-Album Maria 50 Documents

00-Album Mi boda Downloads

00-Album Mi vida laboral Dropbox

00-Album Mónica 40 Fiesta Aina-C.jpg

00-Album Mónica Boda Fiesta Aina-G.jpg

00-Album casa S. Fdo. Fiesta Aina-M.jpg

00-Humor Fiesta Aina-P.jpg

00-Inma lote 1 Hofmann MP copia 13:03:17

00-Mis mascotas Humor

00-Nuestros nietos InstallForMac_llym_istartsurf.pkg

000-Phone Library

2016-Estudio de gastos.xlsx Movies

20170506-Bruno.jpg Music

20170612-Bruno.jpg Notas

50-Maria-01 Para vender

50-Maria-02 Pendrive2GB

ACM Music Pictures

AREA DE COPIAS Popeyes.jpg

AREA DE DIAPOSITIVAS Prueba

AREA DE FOTOS Public



iMac-de-Luis-Carlos-Jerez-Roquero:~ luiscarlosjerezroquero$ cd Prueba

iMac-de-Luis-Carlos-Jerez-Roquero:Prueba luiscarlosjerezroquero$ ls

00004 Classic Piano Gala.mp3

0003 Vagabundo.mp3

002 The First Time Ever I Saw Your Face.mp3

005 Only Sixteen.mp3

006 Whispering Bells.mp3

01 Classic Piano Gala.mp3

041 Rain And Tears.mp3

05 We Shall Dance.mp3

06 Classic Piano Gala.mp3

06666 Como Violetas.mp3

5 El Amor Te Hace Linda.mp3




iMac-de-Luis-Carlos-Jerez-Roquero:Prueba luiscarlosjerezroquero$ ls -1 *.mp3|while read fichero;do nuevo_nombre=$(cat $fichero|cut -d" " -f2-);mv $fichero $nuevo_nombre;done

cat: 00004: No such file or directory

cat: Classic: No such file or directory

cat: Piano: No such file or directory

cat: Gala.mp3: No such file or directory

usage: mv [-f | -i | -n] [-v] source target

mv [-f | -i | -n] [-v] source ... directory

cat: 0003: No such file or directory

cat: Vagabundo.mp3: No such file or directory

mv: rename 0003 to Vagabundo.mp3: No such file or directory

cat: 002: No such file or directory

cat: The: No such file or directory

cat: First: No such file or directory

cat: Time: No such file or directory

cat: Ever: No such file or directory



cat: I: No such file or directory


cat: Saw: No such file or directory

cat: Your: No such file or directory

cat: Face.mp3: No such file or directory

usage: mv [-f | -i | -n] [-v] source target

mv [-f | -i | -n] [-v] source ... directory

cat: 005: No such file or directory

cat: Only: No such file or directory

cat: Sixteen.mp3: No such file or directory

usage: mv [-f | -i | -n] [-v] source target

mv [-f | -i | -n] [-v] source ... directory

cat: 006: No such file or directory

cat: Whispering: No such file or directory

cat: Bells.mp3: No such file or directory

usage: mv [-f | -i | -n] [-v] source target

mv [-f | -i | -n] [-v] source ... directory

cat: 01: No such file or directory

cat: Classic: No such file or directory

cat: Piano: No such file or directory

cat: Gala.mp3: No such file or directory

usage: mv [-f | -i | -n] [-v] source target

mv [-f | -i | -n] [-v] source ... directory

cat: 041: No such file or directory


cat: Rain: No such file or directory

cat: And: No such file or directory

cat: Tears.mp3: No such file or directory

usage: mv [-f | -i | -n] [-v] source target

mv [-f | -i | -n] [-v] source ... directory

cat: 05: No such file or directory

cat: We: No such file or directory

cat: Shall: No such file or directory

cat: Dance.mp3: No such file or directory

usage: mv [-f | -i | -n] [-v] source target

mv [-f | -i | -n] [-v] source ... directory

cat: 06: No such file or directory

cat: Classic: No such file or directory

cat: Piano: No such file or directory

cat: Gala.mp3: No such file or directory

usage: mv [-f | -i | -n] [-v] source target

mv [-f | -i | -n] [-v] source ... directory

cat: 06666: No such file or directory

cat: Como: No such file or directory

cat: Violetas.mp3: No such file or directory

usage: mv [-f | -i | -n] [-v] source target


mv [-f | -i | -n] [-v] source ... directory

cat: 5: No such file or directory

cat: El: No such file or directory

cat: Amor: No such file or directory

cat: Te: No such file or directory

cat: Hace: No such file or directory

cat: Linda.mp3: No such file or directory

usage: mv [-f | -i | -n] [-v] source target

mv [-f | -i | -n] [-v] source ... directory



iMac-de-Luis-Carlos-Jerez-Roquero:Prueba luiscarlosjerezroquero$ ls

00004 Classic Piano Gala.mp3

0003 Vagabundo.mp3

002 The First Time Ever I Saw Your Face.mp3

005 Only Sixteen.mp3

006 Whispering Bells.mp3

01 Classic Piano Gala.mp3

041 Rain And Tears.mp3

05 We Shall Dance.mp3

06 Classic Piano Gala.mp3

06666 Como Violetas.mp3

5 El Amor Te Hace Linda.mp3

iMac-de-Luis-Carlos-Jerez-Roquero:Prueba luiscarlosjerezroquero$ ls


00004 Classic Piano Gala.mp3

0003 Vagabundo.mp3

002 The First Time Ever I Saw Your Face.mp3

005 Only Sixteen.mp3

006 Whispering Bells.mp3

01 Classic Piano Gala.mp3

041 Rain And Tears.mp3

05 We Shall Dance.mp3

06 Classic Piano Gala.mp3

06666 Como Violetas.mp3

5 El Amor Te Hace Linda.mp3

iMac-de-Luis-Carlos-Jerez-Roquero:Prueba luiscarlosjerezroquero$



#19 Usuario offline   APB 

  • Usuario Contínuo
  • PipPipPipPip
  • Buscar Temas
  • Grupo: Usuarios Activos
  • Mensajes: 5.323
  • Registrado: 01-septiembre 04

Publicado 16 julio 2017 - 11:14

Ahora te da el mismo error que a mí. Como puedes ver intenta encontrar un archivo por cada parte en que ha dividido el nombre inicial, y hasta aquí llego.

En mi anterior comentario creía que no te encontraba la carpeta o los archivos ya que había cometido un error y había dejado una "/" al principio de la dirección de los archivos.

Este tema ha sido editado por APB: 16 julio 2017 - 11:19


#20 Usuario offline   lucajero 

  • Usuario
  • Pip
  • Buscar Temas
  • Grupo: Usuarios
  • Mensajes: 59
  • Registrado: 04-octubre 13

Publicado 17 julio 2017 - 07:34

Pues dejémoslo en este punto, APB. He buscado información sobre comandos de Terminal Mac y es una selva enmarañada en la que ahora no puedo adentrarme pues es complicada y se ha de dedicar tiempo, que valdría la pena si fuese una necesidad imperiosa, pero no es el caso. Sólo era la curiosidad de probar la solución que ofrecía Kikelon. Tu Script me fué bordado; con eso tengo suficiente.
Gracias, APB.

#21 Usuario offline   Kikelon 

  • Usuario Activo
  • PipPipPip
  • Buscar Temas
  • Grupo: Usuarios Activos
  • Mensajes: 1.509
  • Registrado: 09-enero 09

Publicado 18 julio 2017 - 10:22

Es que estoy muy tonto, no es 'cat $fichero' sino 'echo $fichero', te he puesto una instruccion para ver ficheros (cat) cuando lo que hay que hacer es visualizar la variable (echo), así la instrucción es:

Cita

ls -1 *.mp3|while read fichero;do nuevo_nombre=$(echo $fichero|cut -d" " -f2-);echo "$fichero # $nuevo_nombre";done


Eso para visualizar nombre antiguo y nombre nuevo.
Si el resultado es el que esperas, puedes ya usar la instrucción de cambiar de nombre:

Cita

ls -1 *.mp3|while read fichero;do nuevo_nombre=$(echo $fichero|cut -d" " -f2-);mv $fichero $nuevo_nombre;done


Disculpa la confusión, y gracias a APB por su ayuda.


#22 Usuario offline   lucajero 

  • Usuario
  • Pip
  • Buscar Temas
  • Grupo: Usuarios
  • Mensajes: 59
  • Registrado: 04-octubre 13

Publicado 18 julio 2017 - 12:06

¡Hola, Kikelon! Momentos de despiste los tenemos todos. Gracias por tu intervención.
He aplicado el primer mandato y el resultado ha sido satisfactorio, como puedes ver aquí abajo:

00004 Fichero4.mp3 # Fichero4.mp3

00009 Fichero9.mp3 # Fichero9.mp3

0003 Fichero3.mp3 # Fichero3.mp3

002 Fichero2.mp3 # Fichero2.mp3

006 Whispering Bells.mp3 # Whispering Bells.mp3

007 Fichero7.mp3 # Fichero7.mp3

008 Fichero8.mp3 # Fichero8.mp3

01 Fichero1.mp3 # Fichero1.mp3

05 We Shall Dance.mp3 # We Shall Dance.mp3

06 Classic Piano Gala.mp3 # Classic Piano Gala.mp3

5 Fichero5.mp3 # Fichero5.mp3




A renglón seguido aplico el otro y ocurre esto:




usage: mv [-f | -i | -n] [-v] source target

mv [-f | -i | -n] [-v] source ... directory

usage: mv [-f | -i | -n] [-v] source target

mv [-f | -i | -n] [-v] source ... directory

usage: mv [-f | -i | -n] [-v] source target

mv [-f | -i | -n] [-v] source ... directory

usage: mv [-f | -i | -n] [-v] source target

mv [-f | -i | -n] [-v] source ... directory

usage: mv [-f | -i | -n] [-v] source target

mv [-f | -i | -n] [-v] source ... directory

usage: mv [-f | -i | -n] [-v] source target

mv [-f | -i | -n] [-v] source ... directory

usage: mv [-f | -i | -n] [-v] source target

mv [-f | -i | -n] [-v] source ... directory

usage: mv [-f | -i | -n] [-v] source target

mv [-f | -i | -n] [-v] source ... directory

usage: mv [-f | -i | -n] [-v] source target

mv [-f | -i | -n] [-v] source ... directory

usage: mv [-f | -i | -n] [-v] source target

mv [-f | -i | -n] [-v] source ... directory

usage: mv [-f | -i | -n] [-v] source target



mv [-f | -i | -n] [-v] source ... directory




Hago un ls y el contenido de la carpeta no se ha alterado:




00004 Fichero4.mp3 008 Fichero8.mp3

00009 Fichero9.mp3 01 Fichero1.mp3

0003 Fichero3.mp3 05 We Shall Dance.mp3

002 Fichero2.mp3 06 Classic Piano Gala.mp3

006 Whispering Bells.mp3 5 Fichero5.mp3



007 Fichero7.mp3



#23 Usuario offline   Kikelon 

  • Usuario Activo
  • PipPipPip
  • Buscar Temas
  • Grupo: Usuarios Activos
  • Mensajes: 1.509
  • Registrado: 09-enero 09

Publicado 18 julio 2017 - 01:49

Mmmm, a lo mejor es por los espacios, en OSX no lo he ejecutado, prueba así:

Cita

ls -1 *.mp3|while read fichero;do nuevo_nombre=$(echo $fichero|cut -d" " -f2-);mv -f "$fichero" "$nuevo_nombre";done


Ver Mensajelucajero, en 18 July 2017 - 12:06 PM, dijo:

¡Hola, Kikelon! Momentos de despiste los tenemos todos. Gracias por tu intervención.
He aplicado el primer mandato ...



#24 Usuario offline   lucajero 

  • Usuario
  • Pip
  • Buscar Temas
  • Grupo: Usuarios
  • Mensajes: 59
  • Registrado: 04-octubre 13

Publicado 18 julio 2017 - 04:33

¡Bingo! Muchas gracias por tu ayuda y tu paciencia.
Es una pasada este foro, donde siempre hay quien su interés es ayudar y transmitir su sabiduría.
APB y Kikelon, en esta ocasión, han sido los caballeros andantes. Imagen publicada

#25 Usuario offline   Kikelon 

  • Usuario Activo
  • PipPipPip
  • Buscar Temas
  • Grupo: Usuarios Activos
  • Mensajes: 1.509
  • Registrado: 09-enero 09

Publicado 19 julio 2017 - 08:47

Me alegro que funcionara, yo bucles así los uso mucho en mi trabajo, para truncar lineas y extraer información de ficheros con miles de lineas, y bash + expresiones regulares son una herramienta muy pontente y el rendimiento es brutal, y sobre todo que una vez tienes la expresión o la transformación, convertirlo en un script ejecutable al que le pasas los argumentos es cuestión de añadir dos o tres lineas. Además como comenté, son muy portables, en cualquier entorno que tenga Bash los ejecutas y la mayoría salvo algunos cambios muy concretos de sintaxis, te funcionaran en otros shells como sh, ksh, etc.

Compartir este tema:


  • 2 Páginas +
  • 1
  • 2
  • No puedes empezar un nuevo tema
  • No puedes responder a este tema