C'è una scorciatoia in Shell/Bash che può rinominare tutti i file in una cartella in base a un'espressione regolare o ad altri criteri. Quello che sto cercando qui è nella cartella Documenti, che ha diciamo un file di testo 100 con la seguente convenzione di denominazione:Scorciatoia shell/Bash per rinominare in blocco i file in una cartella
<longdocumentidentifier>-doc-<counter>.txt.
ho bisogno di rinominare tutti i file con il sopra data convenzione a poco:
doc-<counter>.txt
C'è un one-liner che può aiutarmi con quanto sopra?
Questo è stato utile per un caso leggermente diverso; dove volevo sostituire tutti gli spazi in alcuni nomi di file con trattini: 'for i in *; fai mv "$ i" $ {i // \/-}; done'. Si noti che per fare questo ho dovuto citare i nomi dei file originali. –
L'ho usato per rimuovere .sh da tutti i nomi degli script :-) 'for i in * .sh; fai mv $ i $ {i/.sh /}; done'. – erm3nda
@ erm3nda fai attenzione: '$ {i/.sh /}' cancella la prima corrispondenza della stringa .sh. Per assicurarti di rimuovere l'estensione (che presumo tu voglia) dovresti usare '$ {i /%. Sh /}' – Sorin