par toutes lettres tu entends decomposer l'entier en ces decimales sous forme de caracteres ascii ou bien en français ?
parce que autant pour la premiere methode c'est simple, la seconde va demendre des aleas de la langue et donc sera nettement moins triviale (mais largement accessible a realiser pourtant)
pour un chiffre, un tableau tout bête peut suffire (les chiffres étant invariables, même pas besoin de gérer le pluriel).
pour un nombre en revanche, bonjour les accords ;-)
# echo '0 2 54 fg1t 564.9' | sed -n '/0/ {s/0/zero/}; /1/ {s/1/un/}; /2/ {s/2/deux/}; /3/ {s/3/trois/}; /4/ {s/4/quatre/}; /5/ {s/5/cinq/}; /6/ {s/6/six/}; /7/ {s/7/sept/}; /8/ {s/8/huit/}; /9/ {s/9/neuf/}; p'
zero deux cinqquatre fgunt 5six4.neuf
Ca me fait penser à une question entendue dans je ne sais quel jeu télévisé: quel est le chiffre inscrit sur le maillot de tel joueur de foot ? Le candidat répond à toute vitesse 1 2 3 4 5 6 7 8 9. Nan nan la réponse était 11 :-)
Kerro :
# echo '0 2 54 fg1t 564.9' | sed -n '/0/ {s/0/zero/}; /1/ {s/1/un/}; /2/ {s/2/deux/}; /3/ {s/3/trois/}; /4/ {s/4/quatre/}; /5/ {s/5/cinq/}; /6/ {s/6/six/}; /7/ {s/7/sept/}; /8/ {s/8/huit/}; /9/ {s/9/neuf/}; p'
zero deux cinqquatre fgunt 5six4.neuf
S'amuser en root, c'est Mal(C)...
$ echo '0 2 54 fg1t 564.9' | sed -e '
/0/ s//zero/g
/1/ s//un/g
/2/ s//deux/g
/3/ s//trois/g
/4/ s//quatre/g
/5/ s//cinq/g
/6/ s//six/g
/7/ s//sept/g
/8/ s//huit/g
/9/ s//neuf/g
'
zero deux cinqquatre fgunt cinqsixquatre.neuf
et avec Awk :
awk '
BEGIN{
split("un deux trois quatre cinq six sept huit neuf",L);
L[0]="zéro";
}
/[0-9]/{
for(n=0;n<10;n++){gsub(n,L[n])}
print;
}'
Ca me fait penser à une question entendue dans je ne sais quel jeu télévisé: quel est le chiffre inscrit sur le maillot de tel
joueur de foot ? Le candidat répond à toute vitesse 1 2 3 4 5 6 7 8 9. Nan nan la réponse était 11 :-)
Ben, dans l'équipe B, ils ont des numéros hexadécimaux ?
S'amuser en root, c'est Mal(C)
Nan, ce qui est mal c'est d'ajouter à la mimine un dièse au lieu d'un dollar.
Oui sinon, hum, j'ai oublié les 'g'.
J'aime beaucoup avec awk. Un jour peut-être, je lirais la doc :-)
Ma question à deux balles: tu utilises awk "en vrai" ou c'est juste pour le plaisir de l'exemple ?
J'aime beaucoup avec awk. Un jour peut-être, je lirais la doc :-)
Elle est tout de même plus longue que celle de Sed :)
Ma question à deux balles: tu utilises awk "en vrai" ou c'est juste pour le plaisir de l'exemple ?
Oui, je l'utilise --- Awk est parfois très concis, par exemple iptables -nvL | awk '$1'
ou un uniq sans tri : awk '!n[$0]++'. Il permet aussi d'éviter de piper plusieurs grep.
# toutes lettres
Posté par vincent LECOQ (site web personnel) . Évalué à 2.
parce que autant pour la premiere methode c'est simple, la seconde va demendre des aleas de la langue et donc sera nettement moins triviale (mais largement accessible a realiser pourtant)
[^] # Re: toutes lettres
Posté par BAud (site web personnel) . Évalué à 3.
pour un nombre en revanche, bonjour les accords ;-)
# sèdétonhnami
Posté par Kerro . Évalué à 4.
# echo '0 2 54 fg1t 564.9' | sed -n '/0/ {s/0/zero/}; /1/ {s/1/un/}; /2/ {s/2/deux/}; /3/ {s/3/trois/}; /4/ {s/4/quatre/}; /5/ {s/5/cinq/}; /6/ {s/6/six/}; /7/ {s/7/sept/}; /8/ {s/8/huit/}; /9/ {s/9/neuf/}; p'
zero deux cinqquatre fgunt 5six4.neuf
Ca me fait penser à une question entendue dans je ne sais quel jeu télévisé: quel est le chiffre inscrit sur le maillot de tel joueur de foot ? Le candidat répond à toute vitesse 1 2 3 4 5 6 7 8 9. Nan nan la réponse était 11 :-)
[^] # Re: Sed&Awksontézamis
Posté par Jacques L'helgoualc'h (site web personnel) . Évalué à 1.
# echo '0 2 54 fg1t 564.9' | sed -n '/0/ {s/0/zero/}; /1/ {s/1/un/}; /2/ {s/2/deux/}; /3/ {s/3/trois/}; /4/ {s/4/quatre/}; /5/ {s/5/cinq/}; /6/ {s/6/six/}; /7/ {s/7/sept/}; /8/ {s/8/huit/}; /9/ {s/9/neuf/}; p'
zero deux cinqquatre fgunt 5six4.neuf
S'amuser en root, c'est Mal(C)...
$ echo '0 2 54 fg1t 564.9' | sed -e '
/0/ s//zero/g
/1/ s//un/g
/2/ s//deux/g
/3/ s//trois/g
/4/ s//quatre/g
/5/ s//cinq/g
/6/ s//six/g
/7/ s//sept/g
/8/ s//huit/g
/9/ s//neuf/g
'
zero deux cinqquatre fgunt cinqsixquatre.neuf
et avec Awk :
awk '
BEGIN{
split("un deux trois quatre cinq six sept huit neuf",L);
L[0]="zéro";
}
/[0-9]/{
for(n=0;n<10;n++){gsub(n,L[n])}
print;
}'
Ca me fait penser à une question entendue dans je ne sais quel jeu télévisé: quel est le chiffre inscrit sur le maillot de tel
joueur de foot ? Le candidat répond à toute vitesse 1 2 3 4 5 6 7 8 9. Nan nan la réponse était 11 :-)
Ben, dans l'équipe B, ils ont des numéros hexadécimaux ?
OK, -->[]
[^] # Re: Sed&Awksontézamis
Posté par Kerro . Évalué à 2.
S'amuser en root, c'est Mal(C)
Nan, ce qui est mal c'est d'ajouter à la mimine un dièse au lieu d'un dollar.
Oui sinon, hum, j'ai oublié les 'g'.
J'aime beaucoup avec awk. Un jour peut-être, je lirais la doc :-)
Ma question à deux balles: tu utilises awk "en vrai" ou c'est juste pour le plaisir de l'exemple ?
[^] # Re: Sed&Awksontézamis
Posté par Jacques L'helgoualc'h (site web personnel) . Évalué à 2.
J'aime beaucoup avec awk. Un jour peut-être, je lirais la doc :-)
Elle est tout de même plus longue que celle de Sed :)
Ma question à deux balles: tu utilises awk "en vrai" ou c'est juste pour le plaisir de l'exemple ?
Oui, je l'utilise --- Awk est parfois très concis, par exemple iptables -nvL | awk '$1'
ou un uniq sans tri : awk '!n[$0]++'. Il permet aussi d'éviter de piper plusieurs grep.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.