Come posso rimuovere gli spazi bianchi iniziali / finali dai nomi di file in Automator?

4

Mia moglie rinomina continuamente i file durante l'archiviazione nella sua memoria di backup esterna, quindi ho studiato utilizzando l'automazione per farlo per lei. Ora ho una cartella degli automatori in cui lascia solo il file e rinominerà il file in modo appropriato.

Ora mi trovo di fronte a una situazione in cui il file potrebbe ora contenere spazi iniziali e / o finali, come potrei semplicemente tagliare questo spazio bianco?

Non ho mai veramente usato AppleScript ma sono abile nello scripting di shell, posso semplicemente scrivere uno script di shell che eseguirà questa attività? Darò a AppleScript se qualcuno potrebbe indicarmi la giusta direzione.

    
posta Brett Ryan 30.10.2011 - 12:53
fonte

5 risposte

1

for f in "$@"; do new="$(echo -n "$f" | sed -E 's|/$||;s| +$||;s|^ +||;s|/ +([^/]+$)|/|;s| +(\.[^.][a-zA-Z0-9.]*)$||g')"; mv "$f" "$new"; echo "$new"; done

(Incolla come azione Esegui script shell e seleziona Passa input: come argomenti .)

    
risposta data 31.10.2011 - 07:00
fonte
1

C'è uno script di riga per quello, cd in quella cartella e ...

for f in *; do mv "$f" "$(echo $f)"; done

Inseriscilo in uno script di shell e chiamalo da Applescript:

tell application "Terminal"
    do script "whatever"
end tell
    
risposta data 30.10.2011 - 13:47
fonte
1

Per una risposta corretta su quella della risposta di Tuan è necessario quanto segue che non solo rinominerà il file, ma preserverà anche la catena di azioni per le azioni seguenti.

Prendi nota anche del fatto che non vogliamo rinominare la cartella principale in alcun modo, solo i file.

for f in "$@" ; do
    dirname=$(dirname "$f")
    basename=$(basename "$f")
    name=${basename%.*}
    ext=${basename##*.}
    name="$(echo "$name" | sed -Ee 's/^ +//;s/ +$//')"
    new="$dirname/$name.$ext"
    mv "$f" "$new"
    echo "$new"
done

Inoltre, non è necessario inserirlo in uno script di shell, l'automatore può averlo incorporato nell'azione "Esegui Shell Script".

    
risposta data 31.10.2011 - 00:21
fonte
1

Stavo anche cercando di rimuovere gli spazi bianchi finali dai nomi di file e cartelle. Questo post di Super User mi ha aiutato.

    
risposta data 27.09.2012 - 18:39
fonte
0

C'è un AppleScript (molto simile a Automator) che taglia i nomi dei file. È un po 'lungo, quindi non posso postarlo qui, ma qui è un link al codice. Assicurati di leggere la parte iniziale del codice, in quanto spiega cosa fa lo script e come funziona.

    
risposta data 30.10.2011 - 17:44
fonte

Leggi altre domande sui tag