0 votos

Terminal de la secuencia de comandos para crear carpetas y copiar archivos basado en la parte de nombre de archivo

Tengo una carpeta con miles de archivos en este formato

  • filenameA - 1.ext
  • filenameA - 2.ext
  • filenameB - 1.ext

y a veces

  • filenameB - 02.ext

Necesito un script que lea los archivos y crear una carpeta individual con cada una de las distintas nombre de archivo antes de la " - #.ext" y, a continuación, añadir todos los archivos con el mismo nombre en la carpeta.

En el ejemplo anterior habría dos carpetas 1) filenameA 2) filenameB - cada uno con dos archivos en ellos. Los datos reales que tiene miles de archivos y cada grupo puede tener de 1 a 50ish archivos, con números secuenciales añadido al final.

0voto

hjdm Puntos 18

Si todos tus archivos de seguimiento de la convención de dirname - the_rest_and_ext (tiene el - en el medio) se puede usar algo como:

for f in *; do
   dir_name=`echo "$f" | sed 's/ -.*//'`
   mkdir -p "$dir_name"
   mv "$f" "$dir_name"
done

Si todos los archivos tienen la extensión de la misma, puede cambiar el for a algo como:

for f in *.ext; do

NOTA: asegúrese de que usted sabe lo que está haciendo.

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