Il batch sostituisce la sottostringa con un'altra nei nomi dei file


5

Ho un sacco di file chiamati simili a questo:

1_1.pngEND1_1.png

Come si dovrebbe sostituire .pngENDcon _?

Ho cercato su Google questo problema e ho provato letteralmente 5+ soluzioni, nessuna delle quali ha funzionato su Mac.


Se modifichi il tuo post per dettagliare una soluzione che hai scelto di provare e il link che hai usato, potremmo essere in grado di correggere ciò che non funziona per te. (O scegliere uno strumento migliore per rinominare in batch i file). Userei bash o Python a seconda di quanto fosse facile un ripristino dal backup, ma quegli strumenti o il solo utilizzo mvpotrebbero ritorcersi contro se non sei già bravo con la sintassi necessaria ..
bmike

2
Ti suggerisco di guardare il venerabile perl rename- search.cpan.org/~pederst/rename-1.9/bin/rename.PL
fd0

Risposte:


8

Ci sono molti modi per farlo, per esempio

for i in *pngEND*.png; do [[ -e ${i/.pngEND/_} ]] || echo mv "$i" "${i/.pngEND/_}"; done

Rimuovere echose l'output sembra ragionevole.


15

A meno che tu non abbia bisogno di una soluzione che puoi utilizzare in uno script, puoi farlo direttamente nel Finder.

  • Seleziona i file che vuoi rinominare
  • Fai clic con il tasto destro su uno di essi e scegli Rinomina N elementi ... (dove N è il numero di file selezionati)
  • Scegli l' opzione Sostituisci testo nel menu a discesa
  • Inserisci il testo che vuoi sostituire (".pngEND") e il testo che vuoi sostituire con ("_")
  • Fai clic su Rinomina

1
freddo. non lo sapevo
sanjihan,

2

Se non hai familiarità con il terminale o gli script, puoi utilizzare l'app per mac chiamata NameChanger (gratuita da usare). Puoi cambiare quasi tutto in batch su nomi di file / estensioni di file.


1
Per questo specifico tipo di ridenominazione batch, tuttavia, non sono necessarie app di terze parti: Finder può farlo.
calum_b,

1

Se dovessi farlo, utilizzerei il comando rename disponibile per l'installazione tramite HomeBrew .

Esempio:

Impostare:

mac:test user$ touch 1_1.pngEND1_1.png

mac:test user$ ls
1_1.pngEND1_1.png

Esegui il comando rinomina:

mac:test user$ rename 's/\.pngEND/_/' *.pngEND*

Risultato:

mac:test user$ ls
1_1_1_1.png

1

Ho anche usato lo renamestrumento perl per un certo successo. Ha anche un'opzione di funzionamento a secco in modo da poter eseguire il test prima di eseguire le modifiche.


Devo installare qualcosa per usare i comandi perl?
Sanjihan,

Questa è solo la storia. È solo uno strumento contenuto nel gestore pacchetti che può essere utilizzato su ambienti basati su Linux / GNU. Potrebbe essere proprio come perl-rename.
Pysis,
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.