Awk 将列表转换为表
我想从列表中创建一个表。 这是输入:Awk 将列表转换为表,awk,formatting,string-formatting,tabular,Awk,Formatting,String Formatting,Tabular,我想从列表中创建一个表。 这是输入: Cluster 0 Sequenz 1 Sequenz 2 Cluster 1 Sequenz 3 Cluster 2 Sequenz 4 sequenz 5 Sequenz 6 Sequenz 7 我希望输出为表格格式,其中第一列以标题标签“Cluster 0”开头,下面的行中有顺序1和2。下一列以“cluster1”开头,下面的行中有sequenz3,依此类推 什么样的方法和语言最适合这种情况 不清楚您希望输出结果如何。像这样的 awk ' /Clu
Cluster 0
Sequenz 1
Sequenz 2
Cluster 1
Sequenz 3
Cluster 2
Sequenz 4
sequenz 5
Sequenz 6
Sequenz 7
我希望输出为表格格式,其中第一列以标题标签“Cluster 0”开头,下面的行中有顺序1和2。下一列以“cluster1”开头,下面的行中有sequenz3,依此类推
什么样的方法和语言最适合这种情况 不清楚您希望输出结果如何。像这样的
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
这会将所有数据存储到数组data
中,然后将其打印出来
cluster 0 cluster 1 cluster 2
1 3 4
2 5
6
7