【问题标题】:Transform a listing into a table [closed]将列表转换为表格[关闭]
【发布时间】:2014-11-26 10:41:28
【问题描述】:

我想从列表中创建一个表。 这是输入:

Cluster 0
Sequenz 1 
Sequenz 2
Cluster 1
Sequenz 3
Cluster 2
Sequenz 4
sequenz 5
Sequenz 6
Sequenz 7

并且我希望输出采用表格格式,其中第一列以标题标签“Cluster 0”开头,在下面的行中有序列 1 和 2。下一列以“Cluster 1”开头并具有序列3 在下面的行中,依此类推。

什么方法和语言最适合这个?

【问题讨论】:

    标签: awk formatting string-formatting tabular


    【解决方案1】:

    不清楚您希望输出的内容如何。有这样的吗?

    awk '
    /Cluster/ {
        c=$2
        col++
        b=1
        next}
        {
        data[c FS b++]=$2
        row=row<b?b:row} 
    
    END {
        for (i=0;i<col;i++) 
            printf "%-12s","cluster "i
        print ""
        for (j=1;j<row;j++) {
            for (i=0;i<col;i++) printf "%-12s",data[i FS j]
            print ""}
        }
    ' file
    

    cluster 0   cluster 1   cluster 2
    1           3           4
    2                       5
                            6
                            7
    

    这会将所有数据存储到数组data 中,然后将其打印出来。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-22
      • 2019-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-30
      • 2017-11-24
      相关资源
      最近更新 更多