在Linux中将行转置为列

时间:2019-07-16 16:48:15

标签: linux unix

(在文件中)输入如下-

IndexName      ColumnName
Ind1           Col1
Ind1           Col2
Ind2           Col3

现在如何使用linux生成以下输出,请sed或awk或其他内置函数-

IndexName      ColumnName
Ind1           ("Col1","Col2")
Ind2           ("Col3")

谢谢,

1 个答案:

答案 0 :(得分:1)

我敢肯定,这里有些丑陋的awk可以写得更加优雅。另外,为便于记录,这更多是“字符串聚合”,而更少“移调”。

awk -v quote='"' 'NR==1{print $0}NR>1{a[$1]=a[$1]","quote$2quote}END{for (ind in a){print ind, "("substr(a[ind], 2, length(a[ind])-1)")"}}'