1 votos

Puedo reemplazar caracteres en AppleScript?

Estoy trabajando en un AppleScript para montar nuestro Active Directory Casa Comparte y he llegado a la siguiente parte que se ve a los usuarios conectados "SMBHome:" y me da la home de los usuarios compartir, pero las barras diagonales en la dirección equivocada", \ " y la necesidad de cambiar 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 este me da una salida de

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

Me encantaría tener el siguiente paso reemplazar la parte de atrás de la barras con barras diagonales y quitar:

"SMBHome: \\"

Con un resultado final de:

//server/share/username

Es esto posible?

Gracias!

1voto

aaplmath Puntos 599

Hay dos enfoques para la solución de este problema. Uno es el uso de JavaScript para la Automatización (ya sea por poner su AppleScript en un flujo de trabajo de Automator y, a continuación, utilizando una Ejecución de JavaScript acción, o por re-escribir la secuencia de comandos completa en JXA), mientras que el otro es el uso de la sed y cut utilidades de línea de comandos a través de la do shell script.

Aquí está el código JavaScript de enfoque:

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

Este script utiliza el incorporado en JavaScript replace función para que coincida y reemplazar texto usando Expresiones Regulares.

Por otro lado, también se podría usar sed y cut en su AppleScript, así:

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

Este utiliza sed para el RegEx, a continuación, cut a recortar el primer bit de la ruta de acceso de la cadena.

En ambos casos, el corrected variable contiene el final, cadena modificada. Debo señalar que, mientras que el comportamiento deseado se puede lograr en el más puro AppleScript, puede ser bastante tedioso.

0voto

Carter Puntos 33

Gracias por la respuesta @aaplmath, de hecho, me acabo de enterar de la necesaria, además de que es lo que tiene y hace el trabajo!

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

Gracias por tu entrada!

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