0 votos

script o flujo de trabajo para modificar la búsqueda y sustitución de barras invertidas en el portapapeles

Tengo que copiar muchas rutas de archivos escritas por personas que utilizan un PC (que usa barras invertidas) a un Mac (que usa barras inclinadas), y estoy cansado de cambiarlas manualmente cada vez. Tengo que copiar la ruta de archivo de nuestro navegador web compartido, pegarla en mi navegador de archivos, y luego entrar y eliminar manualmente la barra invertida y sustituirla por una barra diagonal.

Esta última parte es la que me está matando, ya que básicamente cada ruta de archivo que copio tiene varias barras invertidas que quiero pegar. Lo que quiero es algo que modifique el contenido de mi portapapeles para que pueda pegarlo en el explorador de archivos de mi Mac sin tener que reemplazar manualmente las barras diagonales cada vez.

En resumen, quiero que cualquier "\ ~" en mi portapapeles para cambiar a un "/" antes de pegar. ¿Puede alguien ayudarme con esto?

1voto

user3439894 Puntos 5883

Uso de un servicio de Automator y AppleScript código Aquí hay dos ejemplos de cómo se puede cambiar barras invertidas a barras en un cadena .

El primero toma el texto seleccionado que se pasa al Servicio Automator, hace las sustituciones y establece el salida al Portapapeles. A partir de ahí, puede pegar manualmente el texto que desee y que acepte ser pegado.

El segundo toma el texto seleccionado pasado al Servicio Automator, hace las sustituciones y luego reemplaza el texto seleccionado pasó con el texto modificado en el lugar, que está proporcionando la fuente texto seleccionado es editable.

Hay un ligero código diferencia entre ambos, en el on run subrutina y una única diferencia de ajuste entre el servicios . En ambos casos es necesario seleccionar primero un cadena de texto y luego un Haga clic con el botón derecho del ratón en para seleccionar el servicio desde el menú contextual o accediendo al servicio desde el menú Nombre_de_la_aplicación > Servicios >. La página web on replaceText(find, replace, textString) subrutina es el mismo en ambos ejemplos.

AppleScript código para el método del portapapeles servicio :

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

AppleScript código para el método de sustitución del texto seleccionado servicio :

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

Para utilizar el AppleScript código en un servicio de Automator:

  • En Automatizador crear un nuevo Servicio con El servicio recibe el texto seleccionado en cualquier aplicación y La entrada es la selección completa , dejando sin marcar el [] La salida reemplaza el texto seleccionado casilla de verificación del servicio de portapapeles (AppleScript código para el método del portapapeles servicio :) o comprobando el [] La salida reemplaza el texto seleccionado casilla de verificación para el para el reemplazar seleccionado servicio de texto (AppleScript código para el método de sustitución del texto seleccionado servicio :)

  • Añade un Ejecutar AppleScript acción y eliminar el código por defecto .

  • Copiar y pegar lo que sea código para el método que elija utilizar.

  • Salvar el Servicio con un nombre apropiado, por ejemplo Sustituir las barras invertidas por barras inclinadas en el portapapeles para el primero y o Sustituir las barras invertidas por barras en el texto seleccionado para el segundo. O, por supuesto, lo que usted prefiera.

Ahora seleccione algún texto que tenga barras invertidas en él y luego seleccione el del servicio nombre desde el menú contextual de servicios (clic derecho) o el menú Nombre_de_la_aplicación > Servicios >.

Si utiliza el método del Portapapeles, entonces pegue el ahora texto seleccionado modificado donde quieras o si usas el reemplazar el texto seleccionado ya se sustituye al haber seleccionado ese Servicio.

-1voto

南山竹 Puntos 1
  1. Guarde las entradas de la ruta citada de Windows en un texto sin formato, nómbrelo como paths.txt, por ejemplo

     "C:\Program Files\xyz"
     "C:\Windows\System32"
  2. Entonces hazlo en la Terminal:

    cat paths.txt | sed -e 's#\\#\/#g' > converted.txt
  3. El resultado, como

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

    si quieres obtener rutas posix, prueba con

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

    el resultado convertido será:

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

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X