Comment justifier le texte à gauche dans bash?
Étant donné un texte, $txt
, Comment pourrais-je 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|
3 réponses
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 dit de Left justify à la largeur 10 (les nombres négatifs signifient left justify tandis que les nombres positifs justifient à droite). Le {[4] } est nécessaire pour imprimer une nouvelle ligne, puisque printf
n'en ajoute pas implicitement.
Notez que man printf
décrit brièvement cette commande, mais la documentation au format complète se trouve dans la page de manuel de la fonction C dans man 3 printf
.
Vous pouvez utiliser le - flag
pour la justification à gauche.
Exemple:
[jaypal:~] printf "%10s\n" $txt
hello
[jaypal:~] printf "%-10s\n" $txt
hello
bash
contient un printf
intégré
txt=1234567890
printf "%-10s\n" "$txt"