[KSH] - Completer une chaine de caractere
Résolu
gorkimat
Messages postés
70
Date d'inscription
Statut
Membre
Dernière intervention
-
Athur -
Athur -
Bonjour à tous,
Je suis à la recherche d'une technique pour compléter avec un caractère (par exemple A), une chaîne de caractère si cette dernière a moins de 5 caractères.
Par exemple :
La seule solution que j'ai trouver semble être une véritable usine à gaz ;-)
Je vous remercie par avance pour votre aide,
Bonne fin de journée,
Mat
Je suis à la recherche d'une technique pour compléter avec un caractère (par exemple A), une chaîne de caractère si cette dernière a moins de 5 caractères.
Par exemple :
var1=12345 Résultat => 12345 var2=123 Résultat => 123AA var3=1 Résultat => 1AAAA
La seule solution que j'ai trouver semble être une véritable usine à gaz ;-)
Je vous remercie par avance pour votre aide,
Bonne fin de journée,
Mat
A voir également:
- [KSH] - Completer une chaine de caractere
- Caractère ascii - Guide
- Caractère spéciaux - Guide
- Caractere speciaux - Guide
- Chaine tnt gratuite sur mobile - Guide
- Caractere vide - Guide
3 réponses
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;-))
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 ;-((
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
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
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