Necesito un Applescript para reemplazar un texto como el siguiente:
Texto original:
string string string $ text1
string string string $ text2
text3
string string string $ text4
La salida requerida es:
$ text1
$ text2
text3
$ text4
Puedo hacerlo en la terminal con este comando:
$ echo "string string string $ text1
string string string $ text2
text3
string string string $ text4" | sed -r 's/^(.*)\$ ?(.) (.*)$/$ \3/g'
$ text1
$ text2
text3
$ text4
Por cierto, estoy usando la versión 4.3.30 de bash y la 4.2.2 de sed, ambas de homebrew.
El problema aquí es que necesito hacerlo desde un applescript. Este es mi enfoque:
set commandString to "echo \"string string string $ text\" | sed -r 's|^(.*)\\$ ?(.) (.*)$|$ \\3|g'" as string
set formattedCode to do shell script commandString
Y me sale el siguiente error:
error "sed: illegal option -- r
usage: sed script [-Ealn] [-i extension] [file ...]
sed [-Ealn] [-i extension] [-e script] ... [-f script_file] ... [file ...]" number 1
Si quito el -r
me da un error diferente:
sed: 1: "s|^(.*)\$ ?(.) (.*)$|$ ...": \3 not defined in the RE
Si quito el \3
la salida debe ser $
en lugar de $ text
pero sed
no hace nada y sale:
string string string $ text
Supuse que esto podría ser un problema con sed
versión. Entonces, si reemplazo sed
con /usr/local/bin/sed
no vuelve a hacer nada después de la línea set formattedCode to do shell script commandString
.
¿Alguien sabe dónde está el problema?