¿Puedo reemplazar los caracteres en AppleScript?

1

Estoy trabajando en un AppleScript para montar nuestras acciones compartidas de Active Directory y encontré la siguiente parte que analiza a los usuarios registrados "SMBHome:" y me da la información de los usuarios compartidos en casa, pero las barras son en la dirección incorrecta "\" y necesita cambiarlos a "/".

Hasta ahora el 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 eliminar:

"SMBHome: \"

Con un resultado final de:

//server/share/username

¿Es esto posible?

¡Gracias!

    
pregunta Carter 20.08.2015 - 18:00

2 respuestas

1

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 Ejecutar JavaScript por separado, o reescribiendo el script completo en JXA), mientras que la otra es usar sed y cut utilidades de línea de comando 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: ', '')

Esta secuencia de comandos utiliza la función incorporada de JavaScript replace para hacer coincidir y reemplazar el texto usando expresiones regulares.

Por otro lado, también puedes usar sed y cut en tu AppleScript, de esta forma:

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 el RegEx, luego cut para recortar el primer bit de la ruta desde la cadena.

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

    
respondido por el aaplmath 20.08.2015 - 18:42
0

Gracias por la respuesta @aaplmath, ¡acabo de encontrar la adición necesaria que es lo que tienes y hace el trabajo!

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

¡Gracias por tu aporte!

    
respondido por el Carter 20.08.2015 - 18:56

Lea otras preguntas en las etiquetas