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 10/01/2008, à 22:04

wlourf

[résolu script] résultat de sed dans une variable et non un fichier

Bonsoir,

avec le petit code suivant j'arrive à  afficher ma variable comme je le veux mais je n'arrive pas à  récupérer cette variable transformée pour la suite du script. J'ai cru lire que sed pouvait travailler aussi sur des variables  mais je n'ai pas trouvé la bonne syntaxe ou sed n'est pas la commande adaptée à  mon problème...
merci d'avance pour votre aide

# !/bin/bash

chaine="un : deux :trois?(4/5)"

echo $chaine
echo $chaine | sed -e "s/: /_/g" | sed "s/[:?/]/_/g"
#retourne un _deux _trois_(4_5) ok

Dernière modification par wlourf (Le 10/01/2008, à 23:02)

Hors ligne

#2 Le 10/01/2008, à 22:56

Alain.g

Re : [résolu script] résultat de sed dans une variable et non un fichier

Salut

Si j'ai bien compris ce que tu veux, il faut utiliser une substitution de commandes, $( ) ou ` ` :
http://abs.traduc.org/abs-4.2.01-fr/ch11.html

chaine="un : deux :trois?(4/5)"
echo $chaine

chaine=$(echo $chaine | sed "s/: \|[:?/]/_/g")
echo $chaine

Xubuntu Karmic !

Hors ligne

#3 Le 10/01/2008, à 23:02

wlourf

Re : [résolu script] résultat de sed dans une variable et non un fichier

Exactement ça merci bien!

Hors ligne

#4 Le 10/01/2008, à 23:15

Alain.g

Re : [résolu script] résultat de sed dans une variable et non un fichier

sinon tu n'es pas forcément obligé de passer par "echo | sed" pour ce genre de substitutions :

#!/bin/bash
chaine="un : deux :trois?(4/5)"
chaine=${chaine//: /_}
chaine=${chaine//[:?\/]/_}

echo $chaine

cf : http://abs.traduc.org/abs-4.2.01-fr/ch09s02.html#substringreplacement


Xubuntu Karmic !

Hors ligne

#5 Le 11/01/2008, à 00:04

wlourf

Re : [résolu script] résultat de sed dans une variable et non un fichier

ah oui, c'est ce que je me demandais, j'en apprends tous les jours !

Hors ligne