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 23/02/2007, à 16:32

jjack

[résolu]comment substituer un caractère par un autre en ksh ??

Bonjour,

quelq'un saurait il me dire comment substituer un caractère dans une chaine de caractère ou une variable...

ex : transformer 3.2.5.1 en 3,2,5,1

Merci

Dernière modification par jjack (Le 01/03/2007, à 13:27)


Kubuntu  22.04 Lts Maj depuis 20.04 sur VPC11X9
Ubuntu Studio 22.04 Lts Maj depuis 20.04 (J'aurais mieux fait de le garder..) installé sur Sony VPC11X9E  en Dual Boot

Hors ligne

#2 Le 23/02/2007, à 16:38

best_friend_fr

Re : [résolu]comment substituer un caractère par un autre en ksh ??

Bonjour,

Dans quelle application?
Dans emacs, tu fais
M-x replace-string . , !

Dans gedit, tu fais remplacer dans le menu rechercher.

Dernière modification par best_friend_fr (Le 23/02/2007, à 16:38)


sudo apt-get replace langage_sms by grammaire orthographe ponctuation
La documentation est avant tout faite pour ceux qui posent les questions, et non ceux qui y répondent
Best_friend_fr

Hors ligne

#3 Le 23/02/2007, à 17:00

any

Re : [résolu]comment substituer un caractère par un autre en ksh ??

quelq'un saurait il me dire comment substituer un caractère dans une chaine de caractère ou une variable...

pour une variable shell , tu peux utiliser sed par exemple
cf: man sed

chaine="3.2.5.1 5.2.6.2 5.7.8.2"
echo $chaine
echo $chaine  |  sed "s/\./\,/g"

#4 Le 23/02/2007, à 17:09

jjack

Re : [résolu]comment substituer un caractère par un autre en ksh ??

bonjour,

Il me semble qu'en awk on pouvait egalement le faire mais je ne retrouve pas.
Sais tu me dire

Merci any...


Kubuntu  22.04 Lts Maj depuis 20.04 sur VPC11X9
Ubuntu Studio 22.04 Lts Maj depuis 20.04 (J'aurais mieux fait de le garder..) installé sur Sony VPC11X9E  en Dual Boot

Hors ligne

#5 Le 23/02/2007, à 17:19

any

Re : [résolu]comment substituer un caractère par un autre en ksh ??

gsub dois faire l'affaire (cf man awk wink

sinon surement un truc du style

echo $chaine   | awk '{gsub("\.",","); print $0}'

#6 Le 23/02/2007, à 17:26

best_friend_fr

Re : [résolu]comment substituer un caractère par un autre en ksh ??

echo $chaine   | awk '{gsub("[.]",","); print $0}'

car awk n'aime pas beaucoup les \. (enfin, chez moi)...


sudo apt-get replace langage_sms by grammaire orthographe ponctuation
La documentation est avant tout faite pour ceux qui posent les questions, et non ceux qui y répondent
Best_friend_fr

Hors ligne

#7 Le 23/02/2007, à 17:29

jjack

Re : [résolu]comment substituer un caractère par un autre en ksh ??

ok

Merci beaucoup wink


Kubuntu  22.04 Lts Maj depuis 20.04 sur VPC11X9
Ubuntu Studio 22.04 Lts Maj depuis 20.04 (J'aurais mieux fait de le garder..) installé sur Sony VPC11X9E  en Dual Boot

Hors ligne

#8 Le 23/02/2007, à 17:39

any

Re : [résolu]comment substituer un caractère par un autre en ksh ??

arf oui [] a l'air plus juste  par contre car les 3 passent chez moi smile

echo $chaine   | awk '{gsub("\.",","); print $0}'
echo $chaine   | awk '{gsub("[.]",","); print $0}'
echo $chaine   | awk '{gsub("\\.",","); print $0}'

#9 Le 23/02/2007, à 17:42

best_friend_fr

Re : [résolu]comment substituer un caractère par un autre en ksh ??

Tiens, chez moi, la première ne passe pas.
Il dit qu'il considère \. comme ., et donc, il remplace tous les caractères par des ,

echo $chaine   | awk '{gsub("\.",","); print $0}'
awk: AVERTISSEMENT: séquence d'échappement « \. » traitée simplement comme « . »
,,,,,,,,,,,,,,,,,,,,,,,

En revanche, la 3e passe très bien


sudo apt-get replace langage_sms by grammaire orthographe ponctuation
La documentation est avant tout faite pour ceux qui posent les questions, et non ceux qui y répondent
Best_friend_fr

Hors ligne

#10 Le 23/02/2007, à 17:48

any

Re : [résolu]comment substituer un caractère par un autre en ksh ??

hum peut etre une histoire de mawk et awk ?
moi  awk -W version me donne .

mawk 1.3.3 Nov 1996, Copyright (C) Michael D. Brennan

et dans le man mawk

If you escape any other character \c, you get \c,  i.e.,  mawk  ignores
       the escape.

#11 Le 23/02/2007, à 17:49

jjack

Re : [résolu]comment substituer un caractère par un autre en ksh ??

Yessssss

j'abuse...:rolleyes:

Mais comment rediriger le résultat dans une autre variable...car la variable d'origine n'est pas affecté et elle va me servir en l'état.


Kubuntu  22.04 Lts Maj depuis 20.04 sur VPC11X9
Ubuntu Studio 22.04 Lts Maj depuis 20.04 (J'aurais mieux fait de le garder..) installé sur Sony VPC11X9E  en Dual Boot

Hors ligne

#12 Le 23/02/2007, à 17:52

any

Re : [résolu]comment substituer un caractère par un autre en ksh ??

bon aller c'est la derniere fois ! big_smile

chaine2=`echo $chaine   | awk '{gsub("\\.",","); print $0}'`

#13 Le 23/02/2007, à 17:53

best_friend_fr

Re : [résolu]comment substituer un caractère par un autre en ksh ??

chaine2=`commande`

Beuh, snif, grillé sur le fil

Dernière modification par best_friend_fr (Le 23/02/2007, à 17:53)


sudo apt-get replace langage_sms by grammaire orthographe ponctuation
La documentation est avant tout faite pour ceux qui posent les questions, et non ceux qui y répondent
Best_friend_fr

Hors ligne

#14 Le 23/02/2007, à 17:55

best_friend_fr

Re : [résolu]comment substituer un caractère par un autre en ksh ??

Sachant que maintenant, il faut mettre 4 \ smile
Sinon, le bash les interprète à chaque fois...

chaine2=`echo $chaine   | awk '{gsub("\\\\.",","); print $0}'`

la méthode [] fonctionne toujours


sudo apt-get replace langage_sms by grammaire orthographe ponctuation
La documentation est avant tout faite pour ceux qui posent les questions, et non ceux qui y répondent
Best_friend_fr

Hors ligne

#15 Le 23/02/2007, à 17:57

jjack

Re : [résolu]comment substituer un caractère par un autre en ksh ??

OK

merci j'avais pas capté qu'a chaque niveau un \ est interprété

Merci beaucoup
cool


Kubuntu  22.04 Lts Maj depuis 20.04 sur VPC11X9
Ubuntu Studio 22.04 Lts Maj depuis 20.04 (J'aurais mieux fait de le garder..) installé sur Sony VPC11X9E  en Dual Boot

Hors ligne

#16 Le 23/02/2007, à 18:03

any

Re : [résolu]comment substituer un caractère par un autre en ksh ??

@best_friend_fr
tu utilise awk ou mawk ?

sinon
si  [] fonctionne toujours ,  [] est surement plus juste .

#17 Le 23/02/2007, à 18:06

best_friend_fr

Re : [résolu]comment substituer un caractère par un autre en ksh ??

J'ai mawk et gawk (mais manifestement, la commande awk renvoie sur gawk).

Effectivement tes commandes marchent avec mawk.


sudo apt-get replace langage_sms by grammaire orthographe ponctuation
La documentation est avant tout faite pour ceux qui posent les questions, et non ceux qui y répondent
Best_friend_fr

Hors ligne

#18 Le 23/02/2007, à 19:10

any

Re : [résolu]comment substituer un caractère par un autre en ksh ??

ah ok gawk , donc vaut mieux utiliser une methode  compatible!

mais bon moi j'aime bien mon \. wink

echo $chaine   | gawk  '{gsub(/\./,",");print}'

#19 Le 26/02/2007, à 11:12

jjack

Re : [résolu]comment substituer un caractère par un autre en ksh ??

Moi j'utilise AWK...
cool


Kubuntu  22.04 Lts Maj depuis 20.04 sur VPC11X9
Ubuntu Studio 22.04 Lts Maj depuis 20.04 (J'aurais mieux fait de le garder..) installé sur Sony VPC11X9E  en Dual Boot

Hors ligne