#1 Le 22/07/2010, à 00:21
- tiof
sed ne pas interpreter les caractères speciaux
salut,
je cherche le moyen de remplacer du texte par le contenue d'une variable, le problème c'est que la variable contient des caractères speciaux.
exemple:
export var=`sed -n 2p document | sed "s/\// /g"`
sed "s/URLIMAGE/$var/" template
ca me donne une url du style http: image.com picture... car je vire les / mais moi je voudrais remplacer URLIMAGE par la vrai URL et sans utiliser ca (subtitution du slash), car je peux pas etre sur à 100% que la variable contiendrat que des /
si quelqu'un voit comment faire (meme sans sed) ca m'interesse
merci
Dernière modification par tiof (Le 22/07/2010, à 00:21)
Hors ligne
#2 Le 22/07/2010, à 05:58
- credenhill
Re : sed ne pas interpreter les caractères speciaux
hello
en sed, si le texte à modifier contient des /, utiliser un autre caractère comme séparateur:
sed "s+/+ +g"
Dernière modification par credenhill (Le 22/07/2010, à 06:48)
En ligne
#3 Le 22/07/2010, à 08:38
- nesthib
Re : sed ne pas interpreter les caractères speciaux
euh… il est censé y avoir quoi dans var après la première commande ? sans ça on ne comprend pas trop ce que tu cherches à faire et où est le problème…
NB. le export var=`…` c'est dépassé (sauf si tu as besoin d'un forte compatibilité avec d'autres systèmes UNIX) à la place utilise var=$(…)
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#4 Le 22/07/2010, à 12:10
- tiof
Re : sed ne pas interpreter les caractères speciaux
dans la var c'est une URL, donc ca peut contenir des / ? des & etc, mais ducoup je crois que je vais envoyer la var avec echo et ajouter le texte autour avec sed, plustot que de vouloir faire un remplacement avec sed
Dernière modification par tiof (Le 22/07/2010, à 12:13)
Hors ligne
#5 Le 22/07/2010, à 12:22
- nesthib
Re : sed ne pas interpreter les caractères speciaux
tu peux quand même donner un exemple concret ? c-à-d ce que tu as au départ et ce que tu dois obtenir à la fin.
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#6 Le 22/07/2010, à 13:38
- tiof
Re : sed ne pas interpreter les caractères speciaux
(la ligne sed de mon premier post servait à récupérer une des variable dans un document deja parsé a une ligne précise (2eme ligne), sauf que la variable peut contenir des caractères qui font foirer sed tel que / ou d'autre, donc echo est plus souple.
curl -b cookie -d "id=MONID&image=URLIMAGE&...ligne avec des trucs a modifier" post.php
donc la ligne entre guillemets est dans un fichier texte (template) c'est une requete post avec plusieurs truc a modifier dedans, mais plustot que d'utiliser la template, je vais plus rajouter dans un fichier vide avec echo
echo "$MONID" >> fichier
echo "$URLIMAGE" >> fichier
ensuite je vais ajouter les elements manquants avec sed (tel que "id=") vu que ca ca ne change pas, puis retirer les retours chariots.
Enfin je pense que cette solution est plus adapté dans mon cas.
Hors ligne