Mike Vanecek wrote:
On Fri, 26 Nov 2004 19:27:09 -0500, Anthony E. Greene wrote
On 26-Nov-2004/17:37 -0600, Mike Vanecek <rh_list@xxxxxxxxxxxxx> 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@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.
Thank you for the script. Another solution that I stumbled upon is to use pr, e.g.,
rpm -qa | sort | pr --columns 3 -at type of thing.
It truncates the columns a bit, but ...
To prevent truncation when using 'pr' you could use its option '-J' (columns will not be truncated, but there will be problems with alingment of columns) or explicitly specify the width of resulting output using '-W<number of chars>' (by default 'pr' output is 72 characters wide).
For example: rpm -qa | sort | pr --columns 3 -aT -J or rpm -qa | sort | pr --columns 3 -aT -W132
Alexey Fadyushin Brainbench MVP for Linux http://www.brainbench.com
-- redhat-list mailing list unsubscribe mailto:redhat-list-request@xxxxxxxxxx?subject=unsubscribe https://www.redhat.com/mailman/listinfo/redhat-list