[KSH] - Completer une chaine de caractere
Résolu/Fermé
gorkimat
Messages postés
70
Date d'inscription
dimanche 1 avril 2007
Statut
Membre
Dernière intervention
1 mars 2012
-
3 mars 2008 à 15:42
Athur - 6 nov. 2008 à 09:06
Athur - 6 nov. 2008 à 09:06
A voir également:
- [KSH] - Completer une chaine de caractere
- Caractère ascii - Guide
- Caractere speciaux - Guide
- Caractère spéciaux - Guide
- Caractère spéciaux mac clavier - Guide
- Chaine tnt gratuite sur mobile - Guide
3 réponses
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 895
3 mars 2008 à 15:54
3 mars 2008 à 15:54
Salut,
Avec "sed" peut être :
Avec "sed" peut être :
[rep]$ echo "1" | sed ':loop; s/^.\{1,4\}$/&A/;t loop' 1AAAA [rep]$ echo "12" | sed ':loop; s/^.\{1,4\}$/&A/;t loop' 12AAA [rep]$ echo "123" | sed ':loop; s/^.\{1,4\}$/&A/;t loop' 123AA [rep]$ echo "1234" | sed ':loop; s/^.\{1,4\}$/&A/;t loop' 1234A [rep]$ echo "12345" | sed ':loop; s/^.\{1,4\}$/&A/;t loop' 12345;-))
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 895
3 mars 2008 à 16:09
3 mars 2008 à 16:09
Pour ton histoire de label, il suffit de remplacer "loop" par la lettre que tu veux :
Ton exemple avec les lettres ne peut pas marcher ;-((
sed ':l; s/^.\{1,4\}$/&A/;t l'Par contre ce que tu veux faire après ne rentre plus dans l'exemple que je t'ai donné. Dans mon exemple on finit de remplir la chaîne avec un caractère quelconque tant que la longueur de cette chaîne n'est pas égale à 5. Donc on se base sur un nombre précis...
Ton exemple avec les lettres ne peut pas marcher ;-((
gorkimat
Messages postés
70
Date d'inscription
dimanche 1 avril 2007
Statut
Membre
Dernière intervention
1 mars 2012
9
3 mars 2008 à 16:16
3 mars 2008 à 16:16
Salut,
D'accord, je n'avais pas capter que {1,4} signifiait "reperté 4 fois".
Mais comme cela ca ne pourrais pas marcher ?
Et puis visiblement, le remplacement de 'loop' par 'l' n'a pas eut l'air de fonctionner ;-((
Merci,
Mat
D'accord, je n'avais pas capter que {1,4} signifiait "reperté 4 fois".
Mais comme cela ca ne pourrais pas marcher ?
echo "MERC" | sed ':l; s/^.\{1,4\}$/&I/;t l'
Et puis visiblement, le remplacement de 'loop' par 'l' n'a pas eut l'air de fonctionner ;-((
$ echo "MERC" | sed ':l; s/^.\{1,4\}$/&I/;t l' Label too long: :l; s/^.\{1,4\}$/&I/;t l
Merci,
Mat
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 895
3 mars 2008 à 16:23
3 mars 2008 à 16:23
Essaie comme ça alors :
echo "MERC" | sed -e :z -e 's/^.\{1,4\}$/&I/;tz';-)
gorkimat
Messages postés
70
Date d'inscription
dimanche 1 avril 2007
Statut
Membre
Dernière intervention
1 mars 2012
9
>
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
3 mars 2008 à 16:28
3 mars 2008 à 16:28
Jipicy,
Super, ça marche à merveille ...
Merci beaucoup pour ton aide, et désolé pour mon manque de clarté dans ma question.
Bonne journée,
Mat
Super, ça marche à merveille ...
Merci beaucoup pour ton aide, et désolé pour mon manque de clarté dans ma question.
Bonne journée,
Mat
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 895
>
gorkimat
Messages postés
70
Date d'inscription
dimanche 1 avril 2007
Statut
Membre
Dernière intervention
1 mars 2012
3 mars 2008 à 16:29
3 mars 2008 à 16:29
De rien ;-))
Athur
>
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
5 nov. 2008 à 18:03
5 nov. 2008 à 18:03
Bonjour,
J'ai un soucis équivalent, sauf que je dois compléter la chaine à gauche et non à droite.
echo "MERC" | sed -e :z -e 's/^.\{1,4\}$/&I/;tz'
en gros ce que je cherche à avoir ce n'est pas MERCI mais IMERC
d'avance merci pour vos réponse , je n'arrive pas à identifier le paramètre dans la commande que je dois changer ....
merci
J'ai un soucis équivalent, sauf que je dois compléter la chaine à gauche et non à droite.
echo "MERC" | sed -e :z -e 's/^.\{1,4\}$/&I/;tz'
en gros ce que je cherche à avoir ce n'est pas MERCI mais IMERC
d'avance merci pour vos réponse , je n'arrive pas à identifier le paramètre dans la commande que je dois changer ....
merci
dubcek
Messages postés
18718
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
22 mars 2024
5 615
3 mars 2008 à 16:12
3 mars 2008 à 16:12
hello
var=${var1}AAAAA
printf "%5s" $var
var=${var1}AAAAA
printf "%5s" $var
gorkimat
Messages postés
70
Date d'inscription
dimanche 1 avril 2007
Statut
Membre
Dernière intervention
1 mars 2012
9
3 mars 2008 à 16:29
3 mars 2008 à 16:29
Salut dubcek,
Merci pour ta proposition.
Bonne fin de journée,
Mat
Merci pour ta proposition.
Bonne fin de journée,
Mat
3 mars 2008 à 16:02
Tout d'abord merci pour ta réponse.
C'est vrai que mes exemples était très mauvais. En fait les 1,2,3,4,5 peuvent être n'importe quel caractères.
J'ai repris ce que tu m'a conseiller, mais j'ai un message d'erreur sur loop "a priori".
Aurais-tu une idée ?
Merci,
Mat