Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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 smile

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)

Hors 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 : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde 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 : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde 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