Batch Rinomina file nella cartella

9

Come posso rimuovere del testo dai nomi di file in una cartella?

Attualmente sto tentando di:

rename s/"NEWER_(.*?)"//g *

Ma nulla viene rinominato

Ho una cartella genitore, con un sacco di sottocartelle, all'interno di file, che OneDrive pensava sarebbe stata una buona idea aggiungere un "(NEWER_timestamp)" a, e mi piacerebbe rimuoverlo.

Nomi file di esempio:

getyou.ico (NEWER_1417529079.87)
o7pm.ico (NEWER_1417529184.89)
o7th.ico (NEWER_1417529135.81)
    
posta Kevin 15.12.2014 - 21:40

2 risposte

8

Prova quanto segue:

find /path/to/parrent-dir -type f -exec rename -n 's:[^/]*(.*) .*$::' {} +

./o7th.ico (NEWER_1417529135.81)                                 renamed as /o7th.ico
./sub-dir (NEWER_1417529135.81)/getyou.ico (NEWER_1417529079.87) renamed as /sub-dir (NEWER_1417529135.81)/getyou.ico
./sub-dir (NEWER_1417529135.81)/o7pm.ico (NEWER_1417529184.89)   renamed as /sub-dir (NEWER_1417529135.81)/o7pm.ico
./getyou.ico (NEWER_1417529079.87)                               renamed as /getyou.ico
./o7pm.ico (NEWER_1417529184.89)                                 renamed as /o7pm.ico
  • Tutto [^/]*(.*) .*$ corrisponde solo all'ultima parte del percorso che non contiene / . E
  • Nell'espressione regolare sopra, (.*) è un gruppo di corrispondenza di tutto dopo l'ultimo / e prima di uno spazio . Il suo riferimento alla parte posteriore sarà .
  • .*$ corrisponde a tutto per finire $ del nome del file dopo lo spazio.
  • Finalmente nella parte di sostituzione del rename s/.../REPLACEMENT/ , abbiamo semplicemente mantenuto il gruppo con corrispondenza compreso tra l'ultimo \ e uno spazio (.*) che è noto come gruppo di corrispondenze.
risposta data αғsнιη 15.12.2014 - 22:27
1

Dovresti considerare di usare le virgolette al di fuori della regex (all'interno, sono prese alla lettera come virgolette) e sfuggire a ( . Prova;

rename -n 's/ \(NEWER_\d{10}.\d{2}\)$//' *NEWER*

La precisione dell'espressione potrebbe non essere necessaria, ma non puoi essere troppo cauto quando modifichi i file.

    
risposta data muru 15.12.2014 - 21:51

Leggi altre domande sui tag