Un amigo mío agrupó toneladas de archivos de esta manera en Windows.
Después de que lo hice cambiar a Ubuntu, los archivos ya no están ordenados según la cantidad de signos de exclamación al frente, así que me gustaría saber cómo podría cambiarlos siguiendo esta regla:
1
Para!
y!!
0
Para!!!
y!!!!
Supongo que debería usar awk pero no soy un experto, así que aquí estoy.
Respuesta1
Para cambiar el nombre por lotes de archivos y directorios con GUI, puede utilizarGPRenombrar.
Puedes instalarlo con:
sudo apt-get install gprename
Respuesta2
En un script de Python:
#!/usr/bin/env python3
import os
import shutil
import sys
dr = sys.argv[1]
replace = ["!", "!!", "!!!", "!!!!"]
for f in os.listdir(dr):
test = [f.startswith(s) for s in replace]
if test.count(True) > 2:
shutil.move(dr+"/"+f, dr+"/"+"0"+f.replace("!", ""))
elif 0 < test.count(True) < 3:
shutil.move(dr+"/"+f, dr+"/"+"1"+f.replace("!", ""))
Reemplazará el inicio !!!!
y !!!
por 0
, y !!
y !
por 1
, asumiendo que !
aparece solo al principio del nombre.
para usarlo
- pegue el script en un archivo vacío, guárdelo como
rename.py
Ejecútelo desde una ventana de terminal con el comando:
python3 /path/to/rename.py '<directory>'
¿Dónde
<directory>
está el directorio que contiene los archivos a cambiar de nombre?
Respuesta3
También puede utilizar el rename
comando basado en Perl, por ejemplo
rename -vn -- 's/^!{1,2}(?!!)/0/' *
para hacer coincidir uno o dos !
caracteres no seguidos por un !
al principio ( ^
) del nombre, yssustituto 0
; y
rename -vn -- 's/^!{3,4}(?!!)/1/' *
para hacer coincidir tres o cuatro !
caracteres no seguidos de un !
al principio ( ^
) del nombre, yssustituto 1
.
NOTA: el -n
modificador le permite realizar un 'ejecución en seco' sin cambiar realmente los nombres; primero pruebe las expresiones y elimínelas n
si desea continuar.