2013-11-15 11 views

risposta

18

Con l'aiuto della risposta di Marco Setchell sono stato in grado di risolvere questo con il seguente one-liner:

for f in *.png; do NEW=${f%.png}@2x.png; mv ${f} "${NEW}"; done; 

Edit: flopr aveva ragione, ora dovrebbe funzionare

4

Questo dovrebbe farlo:

#!/bin/bash 
ls *.png | while read f 
do 
    BASE=${f%.png}   # Strip ".png" off end 
    NEW=${BASE}@2x.png  # Add in @2 
    echo mv "$f" "${NEW}" # Rename 
done 

salvarlo in un file chiamato Add2x, quindi digitare:

chmod +x Add2x 
./Add2x 

Dopo aver visto quello che sta per fare, togliere la parola "eco "così effettivamente lo fa.

+1

Grazie, questo mi ha fatto sulla buona strada. Finalmente l'ho risolto con questa fodera: per f in * .png; do NEW=${f%.png}@2x.png; mv $ {f} "$ {NEW}"; fatto; – user1354603

+0

@ user1354603 quindi devi postare questo come una risposta, quindi devi accettarlo quindi solo gli altri = sapere qual è la risposta corretta che aiuta a risolvere il tuo problema – Vinodh

+0

ok, lo farà, mi dispiace Mark – user1354603

7

mi permetta di aggiungere qualcosa alla contributo. un più generico, formato multiplo (jpg, png, ..) e il nome di "estensione gratuita" (. Modello < nome> @ 2x < estensione>) una soluzione foderato sarebbe questo:

for file in *; do mv "$file" "${file%.*}@2x.${file##*.}"; done 

Questo funziona come un fascino. Speranza che aiuta

0

Un ricorsivo uno di linea che uso:

find -L . -type f -name "*.png" -exec bash -c 'echo "$0" "${0%.*}@2x.png"' {} \; 

Il -L per la gestione di link simbolici ... tipo F è per la ricerca di file solo

Swap 'echo' con ' Se sei soddisfatto di ciò che il comando farà.

0

In realtà, c'è un modo più semplice, utilizzando lo strumento di Perl rename ...

rename 's/(.+)\.png/$1\@2x.png/i' *.png 

Che dice ... "sostituire uno o più caratteri seguiti da .png da quegli stessi personaggi e @2x.png. Do questo in un modo maiuscole e minuscole (i) per tutti i file PNG. "

Lo strumento rename è facilmente installabile con homebrew utilizzando brew install rename.

Problemi correlati