No puedo escribir un código regex para eso. Microsoft Windows ha cambiado los nombres de mis archivos y quiero eliminar la fecha de estos nombres.
¿Cómo puedo hacer esto? (Los nombres están abajo).
icon-culture (2015_09_04 06_58_44 UTC).png
icon-disk (2015_09_04 06_58_44 UTC).png
icon-download (2015_09_04 06_58_44 UTC).png
icon-drop (2015_09_04 06_58_44 UTC).png
icon-file (2015_09_04 06_58_44 UTC).png
icon-film (2015_09_04 06_58_44 UTC).png
icon-flag (2015_09_04 06_58_44 UTC).png
icon-folder (2015_09_04 06_58_44 UTC).png
icon-garbage (2015_09_04 06_58_44 UTC).png
icon-graph (2015_09_04 06_58_44 UTC).png
icon-heart (2015_09_04 06_58_44 UTC).png
icon-help (2015_09_04 06_58_44 UTC).png
icon-lock (2015_09_04 06_58_44 UTC).png
icon-map (2015_09_04 06_58_44 UTC).png
icon-media (2015_09_04 06_58_44 UTC).png
icon-money (2015_09_04 06_58_44 UTC).png
icon-monitor (2015_09_04 06_58_44 UTC).png
icon-notes (2015_09_04 06_58_44 UTC).png
icon-openmail (2015_09_04 06_58_44 UTC).png
icon-phone (2015_09_04 06_58_44 UTC).png
icon-photo (2015_09_04 06_58_44 UTC).png
Los tutoriales no me fueron bien. Porque hay un carácter especial y números unidos.
Puede usar el comando rename
NAME _ :
$ rename -n 's/ \(.*?\)//' *.png
icon-culture (2015_09_04 06_58_44 UTC).png renamed as icon-culture.png
icon-disk (2015_09_04 06_58_44 UTC).png renamed as icon-disk.png
icon-download (2015_09_04 06_58_44 UTC).png renamed as icon-download.png
icon-drop (2015_09_04 06_58_44 UTC).png renamed as icon-drop.png
icon-file (2015_09_04 06_58_44 UTC).png renamed as icon-file.png
icon-film (2015_09_04 06_58_44 UTC).png renamed as icon-film.png
icon-flag (2015_09_04 06_58_44 UTC).png renamed as icon-flag.png
icon-folder (2015_09_04 06_58_44 UTC).png renamed as icon-folder.png
icon-garbage (2015_09_04 06_58_44 UTC).png renamed as icon-garbage.png
icon-graph (2015_09_04 06_58_44 UTC).png renamed as icon-graph.png
icon-heart (2015_09_04 06_58_44 UTC).png renamed as icon-heart.png
icon-help (2015_09_04 06_58_44 UTC).png renamed as icon-help.png
icon-lock (2015_09_04 06_58_44 UTC).png renamed as icon-lock.png
icon-map (2015_09_04 06_58_44 UTC).png renamed as icon-map.png
icon-media (2015_09_04 06_58_44 UTC).png renamed as icon-media.png
icon-money (2015_09_04 06_58_44 UTC).png renamed as icon-money.png
icon-monitor (2015_09_04 06_58_44 UTC).png renamed as icon-monitor.png
icon-notes (2015_09_04 06_58_44 UTC).png renamed as icon-notes.png
icon-openmail (2015_09_04 06_58_44 UTC).png renamed as icon-openmail.png
icon-phone (2015_09_04 06_58_44 UTC).png renamed as icon-phone.png
icon-photo (2015_09_04 06_58_44 UTC).png renamed as icon-photo.png
s/ \(.*?\)//
es una expresión simple, aunque amplia, que coincide con un espacio seguido de paréntesis. Puede elegir expresiones más precisas como:
s/ \(.*?\)\.png$/.png/
- como el anterior, pero que coincide solo si es seguido por .png
y el final del nombre del archivo, os/ \(\d{4}(_\d\d){2} \d\d(_\d\d){2} UTC\)\.png/.png/
: coincide con el patrón de fecha que se muestra en estos archivos y sigue .png
.La opción -n
es para probar el comando. Corre sin él si estás satisfecho con los resultados.
Usando bash
expansión de parámetros:
for file in *.png; do mv -i "$file" "${file%% *}".png; done
${file%% *}
descartará la parte no deseada del nombre del archivo comenzando desde el espacio. Luego, la extensión .png
se agrega después del nombre de archivo mientras mv
- ing.
Puede probar el siguiente fragmento de código python
import os
import glob
files = glob.glob('*')
for file in files:
var1 = file.find(' (')
var2 = file.find(')')+1
filename = file[:var1] + file[var2:]
os.rename(file, filename)
rename
cambia el nombre del archivoUsando bash
y la expansión de parámetros, ejecute el siguiente código desde el mismo directorio donde tiene los archivos.
for file in *.png ; do NAME="${file%%\ \(*}"; EXT="${file##*.}" ; mv "$file" "$NAME"."$EXT" ; done
Ejecución de la muestra
$> ls
icon-culture (2015_09_04 06_58_44 UTC).png icon-disk (2015_09_04 06_58_44 UTC).png
$> for file in *.png ; do NAME="${file%%\ \(*}"; EXT="${file##*.}" ; mv "$file" "$NAME"."$EXT" ; done
$> ls
icon-culture.png icon-disk.png