How to left justify text in Bash How to left justify text in Bash bash bash

How to left justify text in Bash


You can use the printf command, like this:

printf "%-10s |\n" "$txt"

The %s means to interpret the argument as string, and the -10 tells it to left justify to width 10 (negative numbers mean left justify while positive numbers justify to the right). The \n is required to print a newline, since printf doesn't add one implicitly.

Note that man printf briefly describes this command, but the full format documentation can be found in the C function man page in man 3 printf.


You can use the - flag for left justification.

Example:

[jaypal:~] printf "%10s\n" $txt     hello[jaypal:~] printf "%-10s\n" $txthello


Bash contains a printf builtin:

txt=1234567890printf "%-10s\n" "$txt"