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 13/08/2008, à 09:47

P'titeScrarabée

[Résolu] - sed d'une variable

Bonjour à tous,

J'aimerais remplacer un caractère ou un mot dans une variable (chaine) sans passer par un fichier.

Exemple : je voudrais remplacer "a" par "A"

$variable = "abcde, afghij"
sed "s/a/A/g" << $variable
echo $variable > fichier

J'obtiens à l'écran
echo abcde, afghij > fichier

Alors que je voudrais plus tôt que le fichier soit créé, contenant Abcde, Afghij


Je vous remercie d'avance big_smile

#2 Le 13/08/2008, à 09:54

P'titeScrarabée

Re : [Résolu] - sed d'une variable

P'titeScrarabée a écrit :

Bonjour à tous,

J'aimerais remplacer un caractère ou un mot dans une variable (chaine) sans passer par un fichier.

Exemple : je voudrais remplacer "a" par "A"

$variable = "abcde, afghij"
sed "s/a/A/g" << $variable
echo $variable > fichier

J'obtiens à l'écran
echo Abcde, Afghij > fichier

Alors que je voudrais plus tôt que le fichier soit créé, contenant Abcde, Afghij


Je vous remercie d'avance big_smile

#3 Le 13/08/2008, à 10:05

Totor

Re : [Résolu] - sed d'une variable

il y a 2/3 erreurs de syntaxe dans ton script :
1. ta ligne d'affectation est erronée : il ne doit pas y avoir d'espace de part et d'autre le =
2.

$variable="abcde, afghij"

signifie : la variable dont le nom est le contenu de la variable variable prend la valeur "abcde, afghij". La bonne syntaxe est :

variable="abcde, afghij"

3. << permet de faire le lien avec le contenu d'un fichier et non d'une variable.
Il te faut plutôt passer par un echo:

echo $variable|sed 's/a/A/g' > $fichier

-- Lucid Lynx --

Hors ligne

#4 Le 13/08/2008, à 10:21

P'titeScarabée

Re : [Résolu] - sed d'une variable

Totor a écrit :

il y a 2/3 erreurs de syntaxe dans ton script :
1. ta ligne d'affectation est erronée : il ne doit pas y avoir d'espace de part et d'autre le =
2.

$variable="abcde, afghij"

signifie : la variable dont le nom est le contenu de la variable variable prend la valeur "abcde, afghij". La bonne syntaxe est :

variable="abcde, afghij"

3. << permet de faire le lien avec le contenu d'un fichier et non d'une variable.
Il te faut plutôt passer par un echo:

echo $variable|sed 's/a/A/g' > $fichier

Impeccable, ca marche !
Merci beaucoup big_smile

#5 Le 13/08/2008, à 10:28

P'titeScarabée

Re : [Résolu] - sed d'une variable

Je viens de constater que la variable n'a pas été modifiée.
Comment fait-on si on voudrait vraiment la modifier svp ?

#6 Le 13/08/2008, à 10:33

Totor

Re : [Résolu] - sed d'une variable

variable="ce que tu veux"
<traitement>
variable=$(echo ${variable}|sed 's/a/A/g')
echo ${variable}>${fichier}

EDIT :
où encore :

variable="ce que tu veux"
<traitement>
variable=$(echo ${variable}|sed 's/a/A/g'|tee ${fichier})

et si tu souhaites concaténer au fichier : ajoute l'option -a à la commande tee

Note: n'oublie pas de mettre [résolu]

Dernière modification par Totor (Le 13/08/2008, à 10:37)


-- Lucid Lynx --

Hors ligne

#7 Le 13/08/2008, à 10:48

P'titeScarabée

Re : [Résolu] - sed d'une variable

Merci Totor.
J'ai posté sans me connecter, pas vu la possibilité de modifier le titre.

Merci au modo de mettre [résolu] big_smile