¿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:

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!

  • Cómo usar un nombre de aplicación para eliminarlo de un script
  • ls salida no tiene color mientras SSHing a otra máquina con iTerm2, pero lo hace con Terminal
  • Procesamiento distribuido de Apple Compressor para Autodesk Maya
  • Arreglar disco externo desenchufado
  • ¿Hay un emulador de terminal para Mac OS X que admita el enlace Ctrl + (Shift) + Tab?
  • ¿Puedo modificar un command de terminal para hacer cosas adicionales?
  • Variable $ PATH rota
  • ¿Cómo cambiar la input en el terminal de panel dividido?
  • 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).