0 votos

Renombrar archivos con estructura especial de forma rápida

He comprobado la solución aquí pero no aborda demasiado bien mi problema, porque no utiliza la estructura específica de mi nomenclatura.

Tengo una colección de archivos, enumerados y nombrados de forma sistemática, por ejemplo

filep-x

donde x es un número que puede ser bastante grande y p es un marcador de una "makrocolección". Me gustaría copiar todos los archivos de dicha makrocolección como plantilla y renombrar automáticamente todos los archivos copiados como

archivoq-x

En otras palabras, ¿hay alguna opción que me permita reemplazar los nombres automáticamente usando el terminal (como es posible en muchos editores) sin trabajar con documentos adicionales?

Gracias de antemano.

2voto

Michael Zhou Puntos 167

Esto podría ser un trabajo para pax Suponiendo que exista una convención de nomenclatura coherente.

cd directory

pax -rws/filep/fileq/ filep-* /path/to/copy/directory

1voto

user226120 Puntos 1

Por lo general, esto se puede hacer con un bash bucle - no es el más rápido, pero es sencillo. En el tipo de terminal:

for f in filep-* ; do mv -iv "$f" "$(echo "$f" | sed 's/p/q/')" ; done

Explicaciones:

  • for f in filep-* ; do -> para todos los archivos llamados filep-anything Haga lo siguiente
  • mv -iv A B mover (=renombrar) A a B, mientras se dice lo que se hace -v y pedir confirmación antes de sobrescribir un archivo existente -i
  • iban a mover un archivo "$f" (comillas para solucionar problemas con, por ejemplo, espacios en los nombres de los archivos) a:
  • $( $echo $f | sed 's/A/B' ) imprimir el nombre del archivo y luego usar sed a s ubstituye la primera (! y única) aparición de A con B (esto también puede ser sed 's/this123/that456/' pero tenga en cuenta que coincidirá con el primer golpe)

Para asegurarse de que se comporta como se espera, ejecute esto primero:

for f in filep-* ; do echo mv -iv "$f" "$(echo "$f" | sed 's/p/q/')" ; done

Esto sólo imprimirá el comando que se ejecutará para cada archivo y debería tener el siguiente aspecto mv -i filep-x fileq-x .

Nota: esto es para renombrar los archivos y por lo tanto para después de copiarlos. Esto no hace el copiado y el renombrado en uno. También está pensado para ser ejecutado desde el directorio donde están los archivos.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X