¿Puedo replace caracteres en AppleScript?

Estoy trabajando en un AppleScript para montar nuestras Acciones de inicio de Active Directory y he llegado a la siguiente parte que analiza a los usuarios que han iniciado session "SMBHome:" y me da el uso compartido de los usuarios, pero las barras están equivocadas. dirección "\" y necesita cambiarlos a "/".

Hasta ahora, AppleScript es:

  • Transencoding de video por lotes para la web OS X (GUI, no command-line)
  • ¿Por qué mi terminal muestra una cadena como esta?
  • En OS X 10.6, ¿cómo montar un recurso compartido AFP en el inicio o antes del inicio de session del usuario?
  • Recuperar SSHD corrupto
  • Mac App Store se abre en la pantalla en blanco; no puede cambiar entre las opciones del menu
  • Más de dos windows divididas
  • set username to do shell script "whoami" set homepath to do shell script "dscl '/Active Directory/CAMPUS/All Domains/' -read /Users/" & username & " |grep SMBHome:" 

    Cuando se ejecuta esto me da una salida de

     "SMBHome: \\\\server\\share\\username" 

    Me encantaría que el siguiente paso reemplace las barras diagonales con barras diagonales y elimine:

     "SMBHome: \\" 

    Con un resultado final de:

     //server/share/username 

    es posible?

    ¡Gracias!

  • diferencia entre tty y pts
  • Compartir una dirección IP entre múltiples dispositivos Apple
  • La actualización de macOS Sierra no se puede instalar en este disco. Este volumen no cumple con los requisitos para esta actualización.
  • Crear un enlace simbólico en / bin no funciona
  • Usar Finder para organizar aplicaciones por "Tipo de aplicación"
  • ¿Hay alguna manera de hacer que la tecla Enter funcione con un keyboard Logitech K811?
  • 2 Solutions collect form web for “¿Puedo replace caracteres en AppleScript?”

    Hay dos enfoques para resolver este problema. Una es usar JavaScript para Automatización (ya sea colocando su AppleScript en un flujo de trabajo de Automator y luego usando una acción de Ejecutar JavaScript por separado, o volviendo a escribir el guión completo en JXA), mientras que el otro es usar la línea de command sed y cut utilidades a través de do shell script .

    Aquí está el enfoque de JavaScript:

     var string = "SMBHome: \\\\server\\share\\username" // this would be your 'homepath' variable var corrected = string.replace(/\\/g, '/').replace('SMBHome: ', '') 

    Este script usa la function incorporada de replace JavaScript para unir y replace el text usando expresiones regulares.

    Por otro lado, también puedes usar sed y cut en tu AppleScript, así:

     set init to do shell script "echo ' " & homepath & "' | sed 's/\\\\/\\//g'" set corrected to do shell script "echo " & init & " | cut -c 10-" 

    Esto usa sed para RegEx, luego se cut para recortar el primer bit de la ruta de la cadena.

    En ambos casos, la variable corrected contiene la cadena final modificada. Debo señalar que, si bien el comportamiento deseado se puede lograr en AppleScript puro, puede ser bastante tedioso.

    Gracias por la respuesta @aaplmath, en realidad encontré la adición necesaria que es lo que tienes y ¡hace el trabajo!

     | grep SMBHome: | cut -c 10- | sed 's/\\\\/\\//g' " 

    ¡Gracias por su aporte!

    Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).