¿Hay un atajo en Shell/Bash que puede cambiar el nombre de todos los archivos de una carpeta en función de una expresión regular u otros criterios? Lo que busco aquí está en mis documentos de la carpeta, que ha Digamos que un 100 archivos de texto con la siguiente convención de nomenclatura:Atajo de shell/bash para cambiar el nombre de los archivos en una carpeta
<longdocumentidentifier>-doc-<counter>.txt.
tengo que cambiar el nombre de todos los archivos con la convención dada anteriormente a poco:
doc-<counter>.txt
¿Hay un trazador de líneas que me puede ayudar con lo anterior?
Esto fue útil para un caso ligeramente diferente; donde quería reemplazar todos los espacios en algunos nombres de archivo con guiones: 'for i in *; hacer mv "$ i" $ {i // \/-}; hecho'. Tenga en cuenta que para que esto funcione, tuve que citar los nombres de los archivos originales. –
Lo usé para eliminar .sh de todos los nombres de las secuencias de comandos :-) 'for i in * .sh; hacer mv $ i $ {i/.sh /}; hecho'. – erm3nda
@ erm3nda tenga cuidado: '$ {i/.sh /}' borra la primera coincidencia de la cadena .sh. Para asegurarte de que eliminas la extensión (que asumo que deseas) debes usar '$ {i /%. Sh /}' – Sorin