Esto no es práctico, las otras respuestas son mucho más rápidas y cortas, pero ...
¡Puedes usar PowerShell! Microsoft lo ha abierto recientemente y lo hizo multiplataforma. Para obtener descargas e instrucciones de instalación para su sistema operativo, consulte la sección "Obtener PowerShell" .
Una vez que lo instales, puedes usar este breve script:
Get-ChildItem -File '*]*.avi' | ForEach-Object {
Rename-Item $_ -NewName (($_.Name -Split ']')[0] + '.avi')
}
Básicamente, pasa por cada objeto en el directorio actual que coincide con un archivo *]*.avi
, obtiene la parte antes del corchete, lo .avi
vuelve a colocar y lo asigna como el nuevo nombre.
Para ejecutarlo directamente desde Bash, use este one-liner semi-golfizado:
powershell -command $'gci -File \'*]*.avi\'|%{rename-item $_ -NewName (($_.Name -Split \']\')[0]+\'.avi\')}'
Cita que se escapa por cortesía de esta respuesta de desbordamiento de pila .
(Probado en Bash en Ubuntu en Windows. Probablemente haya una forma mucho más corta de hacerlo con PowerShell, pero quería mostrar algo que sea comprensible para las personas que no conocen las expresiones regulares).
krename
es encantador. Tiene todo tipo de opciones poderosas y le muestra lo que hará antes de que realmente lo haga. Incluso podría usarlo para probar patrones que podría usar en bash más tarde.