Kiran
Kiran

Reputation: 8538

Can I align variables in a string with echo and bash?

I want to do formatting using echo in shell scripting.

Here is a small code snippet which is giving me the problem:

echo -en "\rFileName    :   $filename   :    $index of $lines Completed"

The $filename is a string with varying length, and this is causing problem with formatting in the terminal. How can I overcome this?

Here's what I mean:

FileName :       a800_102 :    6 of 6 Completed
FileName :       ersf_1024    :    56 of 56 Completed

I would like to have a table format when I display it on the terminal.

Upvotes: 14

Views: 12476

Answers (1)

richq
richq

Reputation: 56468

Use printf:

printf "\rFileName : %20s : %8d of %8d Completed" $filename $index $lines

Upvotes: 22

Related Questions