Rendre executable par bash une sortie de sed

Résolu
tazou74 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -  
tazou74 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -
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





A voir également:

3 réponses

zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 430
 
Salut,

La sortie de ton "sed" donne :
name=$'valeur'
et ça "bash" lui il ne connait pas ;-((

0
tazou74 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
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
0
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 430
 
$ test='name[valeur]'

$ echo $test 
name[valeur]

$ eval $(echo $test | sed "s/\(.*\)\[\(.*\)\]/\1=\'\2\'/") 

$ echo $name
valeur

$

;-))
0
tazou74 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
MERCI :-))))))
0