Make a table from a text file

Hi,

I have a pipe separated text file.
Can some someone tell me how to convert it to a table?

Text File contents.

 
|Activities|Status1|Status2|Status3|
||NA|$io_running2|$io_running3|
|Replication Status|NA|$running2|$running3|
||NA|$master2|$master3|
|Processlist|$processlist1|$processlist2|$processlist3|
|Average|$average1|$average2|$average3|
||abc:$abc3 GB|abc:$sbc3 GB|abc:$abc3 GB|
|Sizes|efg_abc:$efg_abc3 GB|efg_abc:$efg_abc3 GB|efg_abc:$efg_abc GB|

Wants these contents to be formatted in the following tabular format.

 
table format
Activities Status1 Status2 Status3 
 
Replication Status NA $io_running2 $io_running3 
NA $running2 $running3 
NA $master2 $master3 
 
Processlist Processes:$processlist1 Processes:$processlist2 Processes:$processlist3
 
Average $average1 $average2 $average3 
 
Database Sizes abc: $abc3 abc: $abc3 abc: $abc3 
efg_abc:$efg_abc3 efg_abc:$efg_abc3 efg_abc:$efg_abc3 

can anyone suggest please.

Something like the following should work

  p perl -ne '@fields=split(/\|/,$_);shift @fields;printf "%25s", $_ for (@fields);' tmp.dat
               Activities                  Status1                  Status2                  Status3
                                                NA             $io_running2             $io_running3
       Replication Status                       NA                $running2                $running3
                                                NA                 $master2                 $master3
              Processlist            $processlist1            $processlist2            $processlist3
                  Average                $average1                $average2                $average3
                                      abc:$abc3 GB             abc:$sbc3 GB             abc:$abc3 GB
                    Sizes     efg_abc:$efg_abc3 GB     efg_abc:$efg_abc3 GB      efg_abc:$efg_abc GB

You could also do a 2 pass version throwing the data into a 2D array and working out the size of the largest field in order to determine the size of your string length in the printf statement.(left as an exercise for the reader :wink: )