Taglio di caratteri dalla guida allo script del nome del file

0

Sto provando a eseguire uno script di ridenominazione piuttosto semplice, ma non sono in grado di farlo con un flusso di lavoro di Automator e la mia conoscenza di scripting è totalmente inadeguata (in definitiva per l'uso con Hazel ). L'equivalente che sto tentando di eseguire in Name Mangler è:

'rimuovi 2 caratteri a partire dall'indice 1 - contando dall'inizio'

e

'rimuovi 2 caratteri a partire dall'indice 2 - contando dalla fine'

Qualsiasi assistenza sarebbe apprezzata; AppleScript, Java e Shell sono tutti perfetti in quanto saranno incorporati in Hazel.

    
posta Ben Bronstein 02.08.2016 - 12:13
fonte

2 risposte

1

AGGIORNAMENTO: ho interpretato erroneamente la tua domanda e inizialmente ho dato una risposta che è iniziata con "carattere 1". Se ho capito bene, vuoi tagliare i primi due personaggi e gli ultimi due. Pertanto, si desidera iniziare da "carattere 3." Ho apportato la correzione qui.

In questo modo:

set the_short_name to characters 3 thru -2 of the_original_name as string

Questo è tutto quello che c'è da fare.

Dato che stai lavorando con Hazel puoi ottenere il nome del file in questo modo:

set the_original_name to name of theFile

Potresti voler estrarre più di due caratteri poiché probabilmente gli ultimi quattro caratteri sono ".png", quindi devi togliere 6 caratteri e quindi aggiungere ".png" al nome breve.

Un'altra cosa: Hazel potrebbe pensare che il file rinominato sia un "nuovo" file e di conseguenza eseguire AppleScript sul file rinominato più e più volte finché il nome non è così breve da non accorciarsi. Il modo in cui lo gestisco è che prima sposterei il file dalla cartella guardata e poi rinominerò. Nel mio caso ho una cartella chiamata "Renamed Screenshots" sul mio desktop: il tuo percorso sarà diverso. Usa il tuo nome utente (non "utente" come ho messo nella riga sottostante).

move theFile to (POSIX file "/Users/youruser/Desktop/Renamed Screenshots")
        set the name of theFile to the_short_name & ".png"

Questo dovrebbe farlo.

    
risposta data 04.08.2016 - 00:54
fonte
0

Ecco un comando bash su una riga che farà questo per te:

for file in *.png; do ext=${file##*.}; fname="'basename $file .${ext}'" ; len='expr ${#fname} - 4'; fname="${fname:2:${len}}"; fname="${fname}.${ext}"; mv -- "${file}"  "${fname}"  ;done

Questo comando separa il nome file dall'estensione, calcola la lunghezza della nuova stringa, quindi rimuove i primi due caratteri e gli ultimi due caratteri, quindi "sposta" il file originale nel nuovo file.

Esecuzione di questo comando su alcuni file PNG in una "Cartella test"

Prima:

Dopo:

    
risposta data 04.08.2016 - 01:59
fonte

Leggi altre domande sui tag