C'est comme ça que je code il :
on run {input, parameters}
set aURL to input as string
set sanatizedURL to ¬
do shell script "sed -e 's:%:\\\\%:g' -e 's:#:\\\\string#:g' <<< " & aURL's quoted form
return sanatizedURL
end run
Conseil : Passez la souris sur l'écran et faites défiler horizontalement pour voir l'intégralité de l'image. code .
Notes :
input
est un liste Par exemple :
{"http://books.google.com?xxx&xxx%22+xxx#v=onepage&q=%22Search%20String&f=false"}
set aURL to input as string
le fait :
http://books.google.com?xxx&xxx%22+xxx#v=onepage&q=%22Search%20String&f=false
En el do shell script
commande sed
ne doit être appelé qu'une seule fois, et non deux comme dans la version originale code . sed
peut prendre plusieurs commandes en utilisant le -e
option Il n'est donc pas nécessaire dans ce cas de tuyau le site sortie d'un sed
commande à un autre sed
commande .
Il n'est pas nécessaire de echo
quelque chose à sed
comme il peut traiter un fichier ou un ici la chaîne et donc l'utilisation de <<<
en el do shell script
commande suivi par & aURL's quoted form
qui est par exemple :
'http://books.google.com?xxx&xxx%22+xxx#v=onepage&q=%22Search%20String&f=false'
En citant le value
de aURL
il conserve le coquille de traiter tout caractères spéciaux du shell en el chaîne de caractères .
Ainsi, lorsqu'il est exécuté, le do shell script
commande ressemble par exemple à.. :
do shell script "sed -e 's:%:\\\\%:g' -e 's:#:\\\\string#:g' <<< 'http://books.google.com?xxx&xxx%22+xxx#v=onepage&q=%22Search%20String&f=false'"
Conseil : Passez la souris sur l'écran et faites défiler horizontalement pour voir l'intégralité de l'image. code .
L'utilisation de :
vs. /
en el sed
commande est une préférence personnelle dans ce cas, car elle rend la commande plus facile à lire lorsqu'il faut faire de multiples échappatoires.
L'utilisation de echo
dans l'original code aplatit le liste à un chaîne de caractères Cependant, je préfère ne pas utiliser cette méthode afin de rendre le système de gestion de l'information plus efficace. do shell script
commande moins compliqué.