【问题标题】: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 中,然后将其打印出来。