[colug-432] Nice Plain Text Columns and Avoiding NIH
Jeff Frontz
jeff.frontz at gmail.com
Sun Aug 7 22:19:27 EDT 2011
Sorry, I should have used a "\t" to avoid ambiguity when reading the
field separator setting, so
awk -F"\t" ...
On Sun, Aug 7, 2011 at 10:16 PM, Jeff Frontz <jeff.frontz at gmail.com> wrote:
> Maybe I'm misunderstanding what it is that you want, but I would think
> that such a tool if it existed would (as Jim W suggests) end up being
> pretty much the parsing and output formatting components of awk.
>
> awk -F" " ' {printf "%22s %33s %11s", $1, $2, $3 }' # tab character
> between double quotes
>
> Unless you were thinking that it would figure out the maximum lengths
> of everything and then have an appropriate column size? Then
> something like this:
>
> awk -F" " '{
>
> for (x = 1; x <= NF; x++)
> {
> save[NR, x] = $x
> len = length($x)
> if (len > maxLen[x])
> {
> maxLen[x] = len
> }
> }
>
> if (NF > maxParms)
> {
> maxParms = NF
> }
>
> totalLines++
> }
>
> END {
> for (lines = 0; lines <= totalLines; lines++)
> {
> for (parm = 1; parm <= maxParms; parm++)
> {
> format = "%-" maxLen[parm] "s "
> printf format, save[lines, parm]
> }
>
> printf "\n"
> }
> }
> '
>
>
> On Sun, Aug 7, 2011 at 9:42 PM, <jep200404 at columbus.rr.com> wrote:
>> On Sun, 7 Aug 2011 18:05:25 -0400 (EDT), Jim Wildman <jim at rossberry.com> wrote:
>>
>>> On Sun, 7 Aug 2011, jep200404 at columbus.rr.com wrote:
>>>
>>> > I have a plain text file with variable width fields delimited by tabs.
>>> > What filter program(s) are good at making the columns line up in
>>> > plain text output?
>>
>>> awk is your tool. See printf output formatting in man awk.
>>
>> I was hoping to avoid writing my own code for that.
>> This seems like the kind of thing that has been solved many
>> times before (like for the output of ls -l).
>> I was hoping to avoid reinventing (or recoding) the wheel.
>>
>
More information about the colug-432
mailing list