Étant donné un texte, $txt
, comment pourrais-je laisser le justifier à une largeur donnée dans Bash.
Exemple (largeur = 10):
Si $txt=hello
, Je voudrais imprimer:
hello |
Si $txt=1234567890
, Je voudrais imprimer:
1234567890|
Vous pouvez utiliser la commande printf
, comme ceci:
printf "%-10s |\n" "$txt"
Le %s
signifie interpréter l'argument comme une chaîne, et le -10
lui indique de justifier à gauche jusqu'à la largeur 10 (les nombres négatifs signifient justifier à gauche tandis que les nombres positifs justifient à droite). Le \n
est requis pour imprimer une nouvelle ligne, car printf
n'en ajoute pas implicitement.
Remarque que man printf
décrit brièvement cette commande, mais la documentation complète au format se trouve dans la page de manuel de la fonction C dans man 3 printf
.
Vous pouvez utiliser le - flag
pour la justification de gauche.
[jaypal:~] printf "%10s\n" $txt
hello
[jaypal:~] printf "%-10s\n" $txt
hello
bash
contient un printf
intégré
txt=1234567890
printf "%-10s\n" "$txt"