Ho bisogno e Applescript per sostituire del testo come segue:
Testo originale:
string string string $ text1
string string string $ text2
text3
string string string $ text4
L'output richiesto è:
$ text1
$ text2
text3
$ text4
Posso farlo nel terminale con questo comando:
$ echo "string string string $ text1
string string string $ text2
text3
string string string $ text4" | sed -r 's/^(.*)\$ ?(.) (.*)$/$ /g'
$ text1
$ text2
text3
$ text4
A proposito, sto usando bash versione 4.3.30 e sed 4.2.2, entrambi da homebrew.
Il problema qui è che ho bisogno di farlo da un applecript. Questo è il mio approccio:
set commandString to "echo \"string string string $ text\" | sed -r 's|^(.*)\$ ?(.) (.*)$|$ \3|g'" as string
set formattedCode to do shell script commandString
E ottengo il seguente errore:
error "sed: illegal option -- r
usage: sed script [-Ealn] [-i extension] [file ...]
sed [-Ealn] [-i extension] [-e script] ... [-f script_file] ... [file ...]" number 1
Se rimuovo l'opzione -r
, ottengo un errore diverso:
sed: 1: "s|^(.*)\$ ?(.) (.*)$|$ ...": not defined in the RE
Se rimuovo , l'output deve essere
$
anziché $ text
, ma sed
comando non fa nulla e restituisce:
string string string $ text
Supponevo che questo potesse essere un problema con la versione sed
. Quindi, se sostituisco sed
con /usr/local/bin/sed
, non fa più nulla dopo la riga set formattedCode to do shell script commandString
.
Qualcuno sa dove si trova il problema?