Re: Proposal for new column(1) flag

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Oct 13, 2022 at 09:26:11PM +0200, Thomas Voss wrote:
> Hello there,
> 
> I'm not sure if this is exactly the right place to ask, so forgive me if
> it isn't but I was thinking of a potential new flag for the column(1)
> utility and would like to get some feedback on whether or not it would
> even be accepted before I try to submit a patch.
> 
> The basic issue I am aiming to fix is this:  When you have a bunch of
> lines and you want to display them in a more "human friendly" manner, you
> may decide to display them using columns.  This is what ls does as the
> default behavior when listing files and we can in theory do this by
> piping the output of whatever command we run into column.  The issue I
> found however is that the way column operates is by splitting each row
> into multiple columns where every column has the same width (a width
> which can hold the longest input line).  ls on the other hand tries to
> make each column as thin as possible, with a gap of two spaces between
> each column.  This means that in many cases ls can fit the same data into
> more columns than center can.
> 
> Now when listing files this is not a problem, you can always use ls
> instead of center.  But I recently found myself wanting to do this with a
> list of movies that I had stored in a file, and so being able to just the
> following would be much more convenient, but the gaps between the columns
> is just too large:
> 
> 	$ column movie-list
> 
> So my proposal is to add a new flag, perhaps -g (g for gap) which allows
> you to specify how wide you want the gaps between the columns to be in
> spaces, and then to columnate that way.  That change would make these two
> lines identical:
> 
> 	$ ls *
> 	$ ls * | column -g 2

I guess you want "table" mode for the column (see --table-* options).
It provides almost all features from libsmartcols. The next important
thing for your use-case is --output-separator, for example

  $ echo "AAA BBB CCC" | ./column -t --output-separator "..."
  AAA...BBB...CCC

of course you can use "   " to define space as separator, etc.

    Karel

-- 
 Karel Zak  <kzak@xxxxxxxxxx>
 http://karelzak.blogspot.com




[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux