# Formatting print output

**URL:** <https://www.ruby-forum.com/t/formatting-print-output/155002>\
**Category:** Ruby\
**Created:** [December 6, 2008, 1:43am UTC](https://www.ruby-forum.com/t/formatting-print-output/155002 "2008-12-06T01:43:16Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [December 6, 2008, 1:43am UTC](https://www.ruby-forum.com/t/formatting-print-output/155002/1 "2008-12-06T01:43:16Z")

</div>

Hi All,

How do I format the output from print or puts  
so that columns are aligned:

So this:  
beagle-status 255  
bibtex 154312  
bioradtopgm 7844  
bison 242032  
blackjack 140792

becomes this:

beagle-status 255  
bibtex 154312  
bioradtopgm 7844  
bison 242032  
blackjack 140792

You probably know what I mean.  
I could not find this in my Ruby book (Cooper)  
and a lot of the Ruby Websites cannot be accessed.

Thank you, --JM

---

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [December 6, 2008, 2:10am UTC](https://www.ruby-forum.com/t/formatting-print-output/155002/2 "2008-12-06T02:10:45Z")

</div>

removed\_email\_address@domain.invalid wrote:

> blackjack 140792
> 
> becomes this:
> 
> beagle-status 255  
> bibtex 154312  
> bioradtopgm 7844  
> bison 242032  
> blackjack 140792

You mean something like:

irb(main):001:0\> puts “beagle-status”.ljust(20) + “255”.rjust(10)  
beagle-status 255  
=\> nil  
irb(main):002:0\> puts “bibtex”.ljust(20) + “154312”.rjust(10)  
bibtex 154312  
=\> nil

---

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [December 6, 2008, 2:11am UTC](https://www.ruby-forum.com/t/formatting-print-output/155002/3 "2008-12-06T02:11:20Z")

</div>

> How do I format the output from print or puts  
> so that columns are aligned:
> 
> So this:  
> beagle-status 255  
> bibtex 154312  
> bioradtopgm 7844  
> bison 242032  
> blackjack 140792

Kind of:

a = [[“beagle-status”,255], [“bibtex”,154312], [“bioradtopgm”,7844],  
[“bison”,242032], [“blackjack”,140792]]  
a.each do |item|  
puts “#{sprintf(’%-20s’,item[0])} #{item[1]}”  
end

Result:

beagle-status 255  
bibtex 154312  
bioradtopgm 7844  
bison 242032  
blackjack 140792

Regards.

---

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [December 6, 2008, 2:31am UTC](https://www.ruby-forum.com/t/formatting-print-output/155002/4 "2008-12-06T02:31:48Z")

</div>

On Dec 5, 2008, at 8:04 PM, “EustÃ¡quio Rangel” \<removed\_email\_address@domain.invalid  
m\> wrote:

> Kind of:  
> bibtex 154312  
> bioradtopgm 7844  
> bison 242032  
> blackjack 140792
> 
> Regards.

gem install ruport

require ‘ruport’  
puts Table(:data =\> Hash[\*a.compact])
