Eliminar los caracteres iniciales del nombre de archivo hasta un patrón determinado

Eliminar los caracteres iniciales del nombre de archivo hasta un patrón determinado

Supongamos que tengo archivos llamados: 93162-117352 - May 24, 2017 345 PM_16_163_student.csv

Quiero cambiarle el nombre para que sea: 16_163_student.csv

¿Cómo hago esto con el cambio de nombre?

Respuesta1

Desea eliminar todo el contenido del nombre del archivo hasta el primero incluido _. Esto es similar, pero más fácil, a lo que se pidió en "cambiar los nombres de los archivos consistentemente"

Mi solución sería (asumiendo un shell POSIX como bash):

for name in *.csv; do
    mv -i -- "$name" "${name#*_}"
done

Eliminará ${name#*_}todo hasta el primero _del nombre inclusive.

Esto supone que todos los archivos con los que desea trabajar coinciden con el patrón *.csv.

Agregué un -ipara que tengas la opción de cancelar si eso causara la pérdida de archivos (por ejemplo, porque hay tanto a A_x.csvcomo B_x.csv).

información relacionada