Rinominare più file aggiungendo una stringa all'inizio


21

Per circa 200 file in una directory vorrei aggiungere la stringa 1_all'inizio di tutti i nomi di file.

I nomi dei file sono, ad esempio, DATASET_X_Y_Ze il risultato dovrebbe essere 1_DATASET_X_Y_Z.

Non so nulla di scripting Shell, ma forse c'è un solo liner per il terminale.



Il link @Rinzwind riguarda una domanda diversa. La domanda di Macydanim riguarda anteporre stringhe ai nomi dei file, non ai contenuti dei file.
jc,

Risposte:


38
  • rename 's/^/1_/' * per rinominare tutti i file nella directory corrente

o

  • rename 's/^/1_/' DATASET*per rinominare tutti i file nella directory corrente iniziando con il DATASETloro nome

Spiegazione: l'espressione s/^/1_/dice: "sostituisci l'inizio del nome file (significa che questo simbolo -> ^) 'con 1_".


Se renamenon lo fai immediatamente, devi installare prename(rinominare PERL).
user1359

14

Puoi facilmente rinominare tutti i file nella digitazione della directory corrente (supponendo che tu stia usando bash):

for i in *; do mv "$i" 1_"$i"; done

ovviamente prenderlo con cura; rimanderà TUTTI i file nella directory corrente che sono "visibili" (il nome del file non inizia con un ".")


Questa è la prima soluzione corretta che ho trovato, che può essere utilizzata per aggiungere qualcosa di simile .csva un sottoinsieme di file, con un'espressione jolly modificata anziché *. +1
Zelphir Kaltstahl

Wow! Passa alla CLI! Questa è nuova. :)
Raymond Wachaga,

9

Puoi usare pyRenamer . Può essere trovato nel centro software di Ubuntu. inserisci qui la descrizione dell'immagine Il modello di file originale dovrebbe essere {X} e il modello di file rinominato dovrebbe essere 1_ {1}


Uno dei miei programmi preferiti
Allan,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.