Taglia i caratteri di escape dal percorso del file

3

Genero percorsi di file da utilizzare nelle e-mail trascinando la cartella / il file in questione in Terminal.app, quindi copiando & incollare il testo generato in un testo di posta elettronica.

Il percorso copiato con sequenze di escape:

pCloud\ Drive/SEN\ pCloud/SEN\ Tech\ Team/Clean\ Energy\ WA\ Study16/For\ checking/AB\ checks/SEN\ RE\ SWIS\ 2030\ notes\ for\ AB\checks\ -\ Backup\ input\ table\ tab\ \(5.1.16\).docx

deve diventare così:

pCloud Drive/SEN pCloud/SEN Tech Team/Clean Energy WA Study 2016/For checking/AB checks/SEN RE SWIS 2030 notes for AB\checks - Backup input table tab \(5.1.16\).docx

Sto cercando un modo rapido per eliminare tutte le occorrenze del carattere backslash che sfugge allo spazio. Qualcuno ha menzionato un trucco del Finder per farlo, ma ora l'ho dimenticato.

Ho provato a creare un servizio Finder per fare un semplice Find & Sostituire in Automator ma non è stato possibile completarlo. Automator mi consentirà di farlo apparire in Applicazioni in Servizi (anche se sul mio macOS corrente non mi sembra di vedere quel menu, forse ho bisogno di fare qualcosa per abilitarlo).

Come posso realizzare questo?

    
posta wide_eyed_pupil 10.08.2018 - 11:45
fonte

3 risposte

7
  • Seleziona un file con un clic destro
  • Tieni premuto il tasto Opzione
  • Seleziona la voce di menu Copia "nomefile" come Pathname

Nota: credo che funzioni solo su El Capitan e sopra.

    
risposta data 10.08.2018 - 13:20
fonte
2

Puoi trascinare TextEdit al posto di Terminal. TextEdit non aggiungerà backslash al testo.

Puoi comunque usare Terminal, comunque. Se digiti echo , quindi trascina e rilascia in Terminale, quindi premi invio, i backslash verranno rimossi (in realtà, sono lì proprio per consentire ai comandi del terminale di gestire l'input raw - echo non vede backslash, ma un singolo argomento contenente caratteri di spazio).

$ echo pCloud\ Drive/SEN\ pCloud/SEN\ Tech\ Team/Clean\ Energy\ WA\ Study16/For\ checking/AB\ checks/SEN\ RE\ SWIS\ 2030\ notes\ for\ AB\checks\ -\ Backup\ input\ table\ tab\ \(5.1.16\).docx
pCloud Drive/SEN pCloud/SEN Tech Team/Clean Energy WA Study2016/For checking/AB checks/SEN RE SWIS 2030 notes for ABchecks - Backup input table tab (5.1.16).docx

Inoltre, puoi automatizzare la copia del testo tramite piping a pbcopy :

$ echo pCloud\ Drive/SEN\ pCloud/SEN\ Tech\ Team/Clean\ Energy\ WA\ Study16/For\ checking/AB\ checks/SEN\ RE\ SWIS\ 2030\ notes\ for\ AB\checks\ -\ Backup\ input\ table\ tab\ \(5.1.16\).docx | pbcopy

Ora il testo desiderato sarà nei tuoi appunti.

    
risposta data 10.08.2018 - 17:20
fonte
2

Un approccio semplice che utilizza il servizio Automator:

  1. Avvia Automator.app.

  2. Nella barra dei menu, vai su File → Nuovo → Servizio.

  3. Nell'area dell'editor, imposta le opzioni come:

    • Il servizio riceve selezionato : text

    • in : any application

    • L'output sostituisce il testo selezionato : select check-mark

  4. Nella barra laterale destra, seleziona Libreria → Utility → Esegui azione Script di shell.

  5. Trascina e amp; rilascia l'azione nell'area dell'editor.

  6. In ** Esegui Shell Script *, imposta le opzioni come:

    • Shell : /bin/bash

    • Passa l'input : to stdin

  7. Nell'area dell'editor Esegui script shell , digita la seguente riga di comando sed :

    sed 's/\\ /\ /g'

    Si noti che lo script contiene anche spazi. Consigliabile per modificare questo post e copiare lo script così com'è.

  8. Nel menu Automator, fai clic su File → Salva ... e salva il servizio con un nome adatto.

  9. Ora, quando selezioni il testo in qualsiasi app e fai clic con il pulsante destro del mouse, puoi visualizzare il servizio nella voce di menu contestuale Servizio .

  10. Dopo aver richiamato il servizio, tutte le occorrenze di backslash seguite dal carattere dello spazio verranno sostituite solo dal carattere dello spazio.

risposta data 10.08.2018 - 12:27
fonte

Leggi altre domande sui tag