Script o flusso di lavoro per modificare trovare e sostituire i backslash negli appunti

0

Ho bisogno di fare un sacco di filepath scritti da persone che usano un PC (che usa i backslash) su un Mac (che usa le barre), e sono stufo di cambiarli manualmente ogni volta. Devo copiare il filepath dal nostro browser web condiviso, incollarlo nel mio browser di file, quindi entrare e rimuovere manualmente la barra rovesciata e sostituirlo con una barra.

L'ultima parte è in realtà ciò che mi sta uccidendo in quanto praticamente tutti i percorsi di file che ho copiato contengono diversi backslash che voglio incollare! Quello che voglio è qualcosa che modificherà il contenuto dei miei appunti in modo da poterlo semplicemente incollare nel mio browser di file Mac senza dover sostituire manualmente le barre ogni volta.

In breve, voglio che "\" nella mia clipboard cambi in "/" prima di incollarlo. Qualcuno può aiutarmi per favore con questo?

    
posta CFred 03.09.2016 - 19:23
fonte

2 risposte

1

Usando un servizio di Automator e il codice AppleScript , ecco due esempi di come puoi cambiare backslash a barre in una stringa .

Il primo prende il testo selezionato passato al Servizio Automator, effettua le sostituzioni e imposta l' output negli Appunti. Che da lì puoi incollare manualmente ovunque desideri che possa accettare il testo incollato.

Il secondo prende il testo selezionato passato al Servizio Automator, effettua le sostituzioni e quindi sostituisce il testo selezionato passato con il testo modificato al posto, che fornisce la fonte testo selezionato è modificabile.

C'è una leggera differenza di codice tra i due, nella subroutine on run e una singola differenza di impostazione tra i servizi . Entrambi richiedono prima selezionare una stringa di testo e quindi un tasto destro del mouse per selezionare il servizio dal menu contestuale o accedere al servizio da Nome_applicazione > Servizi > menu. La subroutine on replaceText(find, replace, textString) è la stessa in entrambi gli esempi.

codice AppleScript per il metodo servizio degli appunti:

on run {input}
    set the clipboard to replaceText("\", "/", input as string)
end run

on replaceText(find, replace, textString)
    set prevTIDs to AppleScript's text item delimiters
    set AppleScript's text item delimiters to find
    set textString to text items of textString
    set AppleScript's text item delimiters to replace
    set textString to "" & textString
    set AppleScript's text item delimiters to prevTIDs
    return textString
end replaceText

codice AppleScript per sostituire il metodo di testo selezionato servizio :

on run {input}
    set input to replaceText("\", "/", input as string)
    return input
end run

on replaceText(find, replace, textString)
    set prevTIDs to AppleScript's text item delimiters
    set AppleScript's text item delimiters to find
    set textString to text items of textString
    set AppleScript's text item delimiters to replace
    set textString to "" & textString
    set AppleScript's text item delimiters to prevTIDs
    return textString
end replaceText

Per utilizzare il codice AppleScript in un servizio di automazione:

  • In Automator , crea un nuovo servizio con il servizio riceve il testo selezionato in qualsiasi applicazione e l'input è l'intera selezione , quindi lasciando deselezionata la casella di controllo [] Output sostituisce il testo selezionato per il servizio Appunti (codice AppleScript per il servizio :) o selezionando la casella di controllo [√] Output sostituisce il testo selezionato per il servizio di testo sostituisci selezionato (codice AppleScript per la sostituzione metodo di testo selezionato servizio :)

  • Aggiungi un Esegui AppleScript azione e elimina il codice predefinito .

  • Copia e incolla il codice per il metodo che scegli di utilizzare.

  • Salva il servizio con un nome appropriato, ad esempio sostituisci i backslash con le barre negli appunti per il primo e sostituisci i backslash con le barre in testo selezionato per il secondo. O ovviamente qualunque cosa tu preferisca.

Ora seleziona un testo che contiene backslash e quindi seleziona il nome del servizio dal menu di scelta rapida dei servizi (tasto destro del mouse) o Nome_applicazione > Servizi > menu.

Se utilizzi il metodo Appunti, incolla il testo modificato modificato ora o dove desideri o se utilizzi il metodo sostituisci testo selezionato , è già stato sostituito dopo aver selezionato quel Servizio.

    
risposta data 03.09.2016 - 22:44
fonte
-1
  1. Mantieni le voci di percorso citate di Windows in un testo semplice, assegnale a paths.txt, ad esempio

     "C:\Program Files\xyz"
     "C:\Windows\System32"
    
  2. Poi fallo nel terminale:

    cat paths.txt | sed -e 's#\#\/#g' > converted.txt
    
  3. Il risultato come

    "C:/Program Files/xyz"
    "C:/Windows/System32"
    

    se vuoi ottenere percorsi posix, prova

    cat paths.txt | sed -e 's#^\"\([a-zA-Z]\):#\"\/#' -e 's#\#\/#g' > converted.txt
    

    il risultato convertito sarà:

    "/C/Program Files/xyz"
    "/C/Windows/System32"
    
risposta data 03.09.2016 - 21:15
fonte

Leggi altre domande sui tag