Puede utilizar el do shell script
desde AppleScript para invocar una CLI estándar de UNIX como awk
, sed
o grep
. En este caso, ya que sólo quiere encontrar todas las ocurrencias de *-
desde el principio de su cadena, alistaría sed
para hacer esto.
Algo así eliminará todo hasta el primer guión ( -
):
set output to do shell script "echo " & quoted form of input & " | sed 's/.*-//'"
Ejemplo
Digamos que tenemos este AppleScript:
set input to "001-10312233_033"
set output to do shell script "echo " & quoted form of input & " | sed 's/.*-//'"
log "input: " & input
log "output: " & output
Esto establece su cadena de ejemplo como la variable input
. La segunda línea toma la variable input
y se hace eco de la variable a la sed
comando | sed 's/.*-//'
. Esto quitará todo ( .*
) hasta el primer guión, ( -
), encontrado, y lo sustituye por nada (//)
en sed
.
Los 2 últimos comandos con el log
simplemente se hace eco de las 2 variables, input
& output
.
Aquí está todo en acción:
$ cat regex.sh
#!/bin/bash
osascript <<END
set input to "001-10312233_033"
set output to do shell script "echo " & quoted form of input & " | sed 's/.*-//'"
log "input: " & input
log "output: " & output
END
Asegúrese de que el script regex.sh
es ejecutable:
$ chmod + regex.sh
Y lo ejecutamos así:
$ ./regex.sh
input: 001-10312233_033
output: 10312233_033