Il batch sostituisce la sottostringa con un altro nei nomi dei file

5

Ho un sacco di file con nomi simili a questo:

1_1.pngEND1_1.png

Come sostituiresti .pngEND con _ ?

Ho cercato su Google questo problema e ho provato letteralmente più di 5 soluzioni, non delle quali funzionavano su mac.

    
posta sanjihan 12.04.2017 - 10:33
fonte

5 risposte

8

Ci sono molti modi per farlo, ad esempio

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

Rimuovi echo se l'output sembra ragionevole.

    
risposta data 12.04.2017 - 10:55
fonte
14

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

  • Seleziona i file che desideri rinominare
  • Fai clic con il pulsante destro del mouse su uno di essi e scegli Rinomina elementi N ... (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 con cui vuoi sostituirlo con ("_")
  • Fai clic su Rinomina
risposta data 12.04.2017 - 12:43
fonte
2

Se non sei famiglier con terminale o script, puoi usare l'app mac chiamata NameChanger (gratuito usare). Puoi modificare quasi tutto in batch su nomi di file / estensioni di file.

    
risposta data 12.04.2017 - 12:57
fonte
1

Se dovessi farlo, userei comando di rinomina disponibile per l'installazione tramite HomeBrew.

Esempio:

Configurazione:

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

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

Esegui comando rinomina:

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

Risultato:

mac:test user$ ls
1_1_1_1.png
    
risposta data 12.04.2017 - 20:30
fonte
1

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

    
risposta data 12.04.2017 - 21:08
fonte

Leggi altre domande sui tag