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 18/02/2020, à 20:25

Christophe C

Une variable dans SED

Bonjour, J'ai un bout de code : sed -e 's/.*/&!^Par_defaut/'
C'est pour créer en fin d'une ligne un champs dans une liste déroulante yad dont le séparateur est !

Marche très bien smile

Dans le cadre d'une système de trad, j'aurais besoin que "Par_defaut" soit remplacé par une variable, mais à priori, entre deux simple quote, la variable ne s’exécute pas. Elle est interprétée comme une chaine de caractère.

sed -e 's/.*/&!^$TOTO/' insère donc la chaine "$TOTO" à la fin de ma ligne, et non son contenu.

Si quelqu'un peut m'aider....

Dernière modification par Christophe C (Le 18/02/2020, à 20:26)


BountySource - Faite un petit don, ponctuel ou récurent, pour soutenir le développement de XFCE.
Timeshift - Sécurité : pensez à paramétrer des points de restauration système.
Euclide : « Ce qui est affirmé sans preuve peut être nié sans preuve ».

Hors ligne

#2 Le 18/02/2020, à 20:37

kamaris

Re : Une variable dans SED

Deux solutions :
- utiliser des guillemets doubles pour tout le programme sed :

"s/.*/&!^$TOTO/"

mais il faut alors faire attention à ce que le shell n'interprète pas trop de caractères entre les guillemets doubles (comme ici le point d'exclamation, qui pourrait conduire à une recherche dans l'historique des commandes) ;
- fermer les guillemets simples, concaténer avec la variable placée entre guillemets doubles, puis réouvrir les guillemets simples :

's/.*/&!^'"$TOTO"'/'

moins lisible, mais peut-être plus sécurisé.

Hors ligne

#3 Le 18/02/2020, à 20:52

Watael

Re : Une variable dans SED

"plus sécurisé", en effet.
surtout si, par exemple, tu veux exprimer une fin de ligne ($).


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#4 Le 18/02/2020, à 21:26

kamaris

Re : Une variable dans SED

Oui voilà, et s'il y a beaucoup de caractères à échapper comme ça, notamment des antislash, la première solution peut vite devenir moins lisible que la seconde, finalement.

Hors ligne

#5 Le 19/02/2020, à 09:01

Christophe C

Re : Une variable dans SED

Ok, j'aurais du y penser, j'utilise déjà un système comme cela (le 2e) dans une autre commande.

Merci smile

Dernière modification par Christophe C (Le 19/02/2020, à 09:01)


BountySource - Faite un petit don, ponctuel ou récurent, pour soutenir le développement de XFCE.
Timeshift - Sécurité : pensez à paramétrer des points de restauration système.
Euclide : « Ce qui est affirmé sans preuve peut être nié sans preuve ».

Hors ligne