Rendre executable par bash une sortie de sed
Résolu
Bonjour,
Je dois travailler sur un fichier tabulé dont l'ordre des colonnes n'est pas fixe, mais elles contiennent toujours la même syntaxe:
name[valeur]
Je voudrais que name devienne le nom de ma variable
name='valeur'
J'ai essayé de construire mon assignation de variable par sed :
>test='name[valeur]'
>echo $test | sed "s/\(.*\)\[\(.*\)\]/\1=$\'\2\'/" | bash
ca ne fonctionne pas
pourtant j'avais déjà construit une commande 'mv' de la manière et cela avait fonctionné.
Est-ce que quelqu'un serait pourquoi là ça ne fonctionne pas?
merci
Je dois travailler sur un fichier tabulé dont l'ordre des colonnes n'est pas fixe, mais elles contiennent toujours la même syntaxe:
name[valeur]
Je voudrais que name devienne le nom de ma variable
name='valeur'
J'ai essayé de construire mon assignation de variable par sed :
>test='name[valeur]'
>echo $test | sed "s/\(.*\)\[\(.*\)\]/\1=$\'\2\'/" | bash
ca ne fonctionne pas
pourtant j'avais déjà construit une commande 'mv' de la manière et cela avait fonctionné.
Est-ce que quelqu'un serait pourquoi là ça ne fonctionne pas?
merci
3 réponses
-
ContributeurSalut,
La sortie de ton "sed" donne :name=$'valeur'
et ça "bash" lui il ne connait pas ;-((
-
zut j'ai pas fait un copier coller de la bonne ligne:
c'est
echo $test | sed "s/\(.*\)\[\(.*\)\]/\1=\'\2\'/" | bash
ce qui si retire | bash inscrit bien
name='valeur'
mais echo $name n'ecrit rien -
MERCI :-))))))