Agregue la letra antes del nombre anterior en la carpeta. (Cambiar nombre)

Agregue la letra antes del nombre anterior en la carpeta. (Cambiar nombre)

Tengo varias carpetas y cada una tiene alrededor de 175 archivos. los nombres de los archivos son como

1.wav
2.wav
3.wav
......
175.wav 

tengo que cambiarles el nombre como

A1.wav
A2.wav
A3.wav
......
A175.wav 

En otras palabras, tengo que agregar letras en los nombres de archivos anteriores.

Me pregunto si hay una manera fácil de hacer esto.

La versión de Ubuntu es 16.10

Respuesta1

Hay muchas maneras, mi elección sería un bucle 'for':

for f in *.wav ; do mv "$f" "A$f" ; done

Esto es simple y se modifica fácilmente para otras necesidades...

Respuesta2

Comando de usuario prename:

$ prename -nv 's/^(.*)$/A$1/' *.wav                    
1.wav renamed as A1.wav
2.wav renamed as A2.wav
3.wav renamed as A3.wav

La forma en que esto se lee es simple:

  • *.wavpermite que el shell expanda el comodín para enumerar todos los archivos que terminan en .wav. Cuando el shell ejecuta el comando completo, la computadora verá prename -nv 's/^(.*)$/A$1/' 1.wav 2.wav 3.wavy así sucesivamente como el comando real.
  • En realidad, is 's/^(.*)$/A$1/'es s/PATTERN/REPLACEMENTuna expresión regular con agrupación (.*), que nos permite agrupar el nombre completo del archivo de principio ^a fin $y referirnos a él como $1.

Tenga en cuenta que -nvlos interruptores son para verbose -vy dry-run -n. Si está satisfecho con la ejecución de prueba, elimínela -npara aplicar el cambio de nombre real.

Respuesta3

Usando rename:

rename 's/([0-9]+).wav/A\1.wav/' *.wav
  • s/SEARCH-FOR/REPLACE-WITH/ within-this-files
  • ([0-9]+)contiene la sección numérica y luego podemos usarla nuevamente usando \1.
  • A\1.wav: A+ (sección numérica) +.wav

información relacionada