Albert
Albert

Reputation: 123

Format output in bash

I have output in bash that I would like to format. Right now my output looks like this:

1scom.net 1
1stservicemortgage.com 1
263.net 1
263.sina.com 1
2sahm.org 1
abac.com 1
abbotsleigh.nsw.edu.au 1
abc.mre.gov.br 1
ableland.freeserve.co.uk 1
academicplanet.com 1
access-k12.org 1
acconnect.com 1
acconnect.com 1
accountingbureau.co.uk 1
acm.org 1
acsalaska.net 1
adam.com.au 1
ada.state.oh.us 1
adelphia.net 1
adelphia.net 1
adelphia.net 1
adelphia.net 1
adelphia.net 1
adelphia.net 1
adelphia.net 1
adelphia.net 1
adelphia.net 1
adelphia.net 1
adelphia.net 1
adelphia.net 1
aecom.yu.edu 1
aecon.com 1
aetna.com 1
agedwards.com 1
ahml.info 1

The problem with this is none of the numbers on the right line up. I would like them to look like this:

1scom.net                 1
1stservicemortgage.com    1
263.net                   1
263.sina.com              1
2sahm.org                 1

Would there be anyway to make them look like this without knowing exactly how long the longest domain is? Any help would be greatly appreciated!

The code that outputted this is:

grep -E -o -r "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b" $ARCHIVE | sed 's/.*@//' | uniq -ci | sort | sed 's/^ *//g' | awk ' { t = $1; $1 = $2; $2 = t; print; } ' > temp2

Upvotes: 2

Views: 7350

Answers (1)

Rajesh N
Rajesh N

Reputation: 2574

ALIGNMENT:

Just use cat with column command and thats it:

cat /path/to/your/file | column -t

For more details on column command refer http://manpages.ubuntu.com/manpages/natty/man1/column.1.html

EDITED:

View file in terminal:

column -t < /path/to/your/file

(as noted by anishsane)

Export to a file:

column -t < /path/to/your/file > /output/file

Upvotes: 2

Related Questions