Bonjour,
ma question est peut-etre totalement stupide, mais comme je viens de passer deja 2 jours a chercher...
Voila, je dois ecrire un fichier plat avec des lignes d'un certain nombre de caracteres a chaque fois.
Pour cela, je dois completer mes lignes avec des espaces.
Pour l'instant, je procede de la facon suivante:
Je genere mes lignes en concatenant dans une variable, puis je fais un echo $var vers mon_fichier_plat
Inconvenient, les espaces en fin de ligne ne sont pas conservés.
Idem si j'ai une variable ne contenant qu'un espace, elle n'est pas prise en compte...
ex:
space=" "
var="toto"
echo $space$space$space$var$space$space$space
me donne juste "toto" et non " toto ".
Comment puis-je faire?
Merci d'avance.
Je suis en shell ksh sous SunOs 5.9
# Avec des "quotes"
Posté par Damien Pobel (site web personnel) . Évalué à 4.
ça marche normalement
https://damien.pobel.fr
[^] # Re: Avec des "quotes"
Posté par asbin . Évalué à 0.
J'ai passé de bonnes heures à comprendre pourquoi elle disparaissaient, et il faut en effet ajouter les doubles quotes sinon ça passe pas !
Donc, toujours faire 'echo "$var"' à la place de 'echo $var'
;-]
[^] # Re: Avec des "quotes"
Posté par Paddle . Évalué à 1.
oui, ca marche parfaitement...
C'etait vraiment très bête ;)
merci encore!
# Une solution possible en Perl
Posté par mac . Évalué à 1.
cat foobar | perl -ne 'chomp; $_ .= (" "x10); print substr($_, 0, 10)."\n";'
Ca devrait fonctionner (ici, tu as le cas particulier avec un padding à 10 caractères... tu peux modifier les 10 en ce que tu veux).
[^] # Re: Une solution possible en Perl
Posté par Paddle . Évalué à 1.
[^] # Une solution (forcément plus lisible) avec python
Posté par bobert . Évalué à 2.
mot="toto"
n=20 # nombre de caractères par ligne
print mot.center(n)
# autre idee non testee
Posté par doublehp (site web personnel) . Évalué à 0.
chain = `echo "$v1 $v2"`
n=`echo "$chain" | wc -c`
echo "$chain" >>file
while [ n -lt $LL ]
do
echo " " >>file
n=$(($n+1))
done
tres crade, mais plein de tips a usage futur ...
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.