Valeur 123456789 en 123 456 789? [Fermé]

Signaler
Messages postés
103
Date d'inscription
jeudi 24 septembre 2009
Statut
Membre
Dernière intervention
16 décembre 2019
-
UnGnU
Messages postés
1190
Date d'inscription
lundi 2 mai 2016
Statut
Membre
Dernière intervention
5 juin 2019
-
Bonjour,

Je suis sous AIX. Pour une question de lisibilité, je souhaiterais mettre des espaces entre pour chaque millier d'un résultat d'un script en ksh .
J'ai cherché mais je ne trouve pas. ça devrait pouvoir se faire avec printf il me semble.

Merci de votre aide.


3 réponses

Messages postés
38066
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
25 janvier 2020
4 515
Salut,

Méthode barbare et imbuvable s'il en est ;-))

$ echo "123456789" | rev | sed ':z;s/\<...\B/& /;tz' | rev 
123 456 789

$ echo "1234567890" | rev | sed ':z;s/\<...\B/& /;tz' | rev
1 234 567 890

$ echo "1234567890123" | rev | sed ':z;s/\<...\B/& /;tz' | rev
1 234 567 890 123

$ echo "12345678901234" | rev | sed ':z;s/\<...\B/& /;tz' | rev
12 345 678 901 234

1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 83289 internautes nous ont dit merci ce mois-ci

zipe31
Messages postés
38066
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
25 janvier 2020
4 515 > Rocailleux
Messages postés
542
Date d'inscription
mercredi 9 mars 2016
Statut
Membre
Dernière intervention
8 mars 2018

Bien vu ;-))

Et
sed 's/[0-9]\{3\}/& /g'
le fait aussi ;-)
bob737
Messages postés
103
Date d'inscription
jeudi 24 septembre 2009
Statut
Membre
Dernière intervention
16 décembre 2019
> zipe31
Messages postés
38066
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
25 janvier 2020

echo "12345678" | sed 's/[0-9]\{3\}/& /g'
123 456 78

Cette solution ne met pas les espaces au bon endroit. ;-)
UnGnU
Messages postés
1190
Date d'inscription
lundi 2 mai 2016
Statut
Membre
Dernière intervention
5 juin 2019
123 > bob737
Messages postés
103
Date d'inscription
jeudi 24 septembre 2009
Statut
Membre
Dernière intervention
16 décembre 2019

Salut,

Normal, il manque les 2 pipes avec la commande
rev
;-(
bob737
Messages postés
103
Date d'inscription
jeudi 24 septembre 2009
Statut
Membre
Dernière intervention
16 décembre 2019
> Rocailleux
Messages postés
542
Date d'inscription
mercredi 9 mars 2016
Statut
Membre
Dernière intervention
8 mars 2018

Merci! ça marche.
Rocailleux
Messages postés
542
Date d'inscription
mercredi 9 mars 2016
Statut
Membre
Dernière intervention
8 mars 2018
76
En recursif :

#!/bin/bash

function pr(){
	[[ "$1" -lt 1000 ]] && echo -n "$1" && exit 0
	echo -n $(cut -c -3 <<< $1)" "
	pr "$(cut -c 4- <<< $1)"
}

function revAndPr(){
	rev <<< $(pr $(rev <<< $1)) 
}

revAndPr 123456
revAndPr 12345678



$./nb.sh
123 456
12 345 678

salut,

 $ printf "%'d\n" 123456789
123 456 789
voilà, voilà. XD
;)
zipe31
Messages postés
38066
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
25 janvier 2020
4 515
Salut,

Bien vu, merci ;-)
zipe31
Messages postés
38066
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
25 janvier 2020
4 515 > zipe31
Messages postés
38066
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
25 janvier 2020

Petite précision pour ceux qui comme moi se demandaient où QCQCPQ était allé pêcher l'information, c'était tout simplement dans le
man 3 printf
;-)

'      For  decimal  conversion  (i, d, u, f, F, g, G) the output is to be grouped with thou‐sands' grouping characters if the locale information indicates any. Note  that  many versions  of gcc(1) cannot parse this option and will issue a warning. SUSv2 does not include %'F.
bob737
Messages postés
103
Date d'inscription
jeudi 24 septembre 2009
Statut
Membre
Dernière intervention
16 décembre 2019

mince...ça ne fonctionne pas chez moi!

printf "%'d\n" 123456789
printf: 3016-004 Cannot form a valid conversion.
d
Messages postés
103
Date d'inscription
jeudi 24 septembre 2009
Statut
Membre
Dernière intervention
16 décembre 2019

Merci à tous! ça fonctionne avec sed.
Dommage que le printf ne fonctionne pas chez moi.