Format Output of bash into columns
Anthony E. Greene
tony at greene-family.org
Sat Nov 27 00:27:09 UTC 2004
On 26-Nov-2004/17:37 -0600, Mike Vanecek <rh_list at mm-vanecek.cc> wrote:
>I have looked through my books and googled ... Tried serveral things without
>success ...
>
>I would like to run the output of a bash command that produces 1 field per
>line output through sort and then output in 3 columns. I have looked at
>printf, fmt, column, and so on.
>
>For example,
>
>rpm -qa | sort 2>&1 | column -c 2
>
>rpm -qa | sort | column -c 2
>
>Or say I have a file with a list of sorted names, for example,
>[admin at www admin]$ rpm -qa | sort -o rpm.txt
>
>Then I want to output the file with
>
>column -c 2 rpm.txt
>
#!/usr/bin/perl
#
# Format STDIN into three tab-delimited columns
#
$colnum = 1;
while ($line = <STDIN>) {
chomp $line;
if ($colnum < 3) {
print "$line "; # The whitespace is a tab character.
} else {
print "$line\n";
}
}
You could get fancy using perl's formatting features, but this quick$
dirty should work for lines that are all of similar length, or for input
in an application that easily parses tab-delimited data.
Tony
--
Anthony E. Greene <mailto:Anthony%20E.%20Greene%20%3Ctony at greene-family.org%3E>
AOL/Yahoo Messenger: TonyG05 HomePage: <http://www.greene-family.org/tony/>
OpenPGP Key: 0x6C94239D/7B3D BD7D 7D91 1B44 BA26 C484 A42A 60DD 6C94 239D
Linux. The choice of a GNU generation <http://www.linux.org/>
More information about the redhat-list
mailing list