Usando herramientas StringSolver (Windows y Linux bash) que procesan con ejemplos:
filter fghfilea ok fghreport ok notfghfile notok; mv --all --filter fghfilea jklfilea
Primero calcula un filtro basado en ejemplos , donde la entrada son los nombres de archivo y la salida (ok y notok, cadenas arbitrarias). Si filter tuviera la opción --auto o se invocara solo después de este comando, crearía una carpeta ok
y una carpeta notok
y enviaría los archivos respectivamente.
Luego, usando el filtro, el mv
comando es un movimiento semiautomático que se vuelve automático con el modificador --auto. El uso de los filtros anteriores gracias a --filter, que encuentra una correspondencia entre fghfilea
a jklfilea
y luego se aplica en todos los archivos filtrados.
Otras soluciones de una línea
Otras formas equivalentes de hacer lo mismo (cada línea es equivalente), para que pueda elegir su forma favorita de hacerlo.
filter fghfilea ok fghreport ok notfghfile notok; mv --filter fghfilea jklfilea; mv
filter fghfilea ok fghreport ok notfghfile notok; auto --all --filter fghfilea "mv fghfilea jklfilea"
# Even better, automatically infers the file name
filter fghfilea ok fghreport ok notfghfile notok; auto --all --filter "mv fghfilea jklfilea"
Solución de múltiples pasos
Para encontrar cuidadosamente si los comandos funcionan bien, puede escribir lo siguiente:
filter fghfilea ok
filter fghfileb ok
filter fghfileb notok
y cuando esté seguro de que el filtro es bueno, realice el primer movimiento:
mv fghfilea jklfilea
Si desea probar y usar el filtro anterior, escriba:
mv --test --filter
Si la transformación no es lo que deseaba (por ejemplo, incluso mv --explain
cuando ve que algo está mal), puede escribir mv --clear
para reiniciar el movimiento de archivos o agregar más ejemplos mv input1 input2
donde input1 y input2 son otros ejemplos
Cuando tenga confianza, solo escriba
mv --filter
¡y voilá! Todo el cambio de nombre se realiza utilizando el filtro.
DESCARGO DE RESPONSABILIDAD: Soy coautor de este trabajo realizado con fines académicos. También podría haber una característica de producción de bash pronto.