如何将相同的头数据附加到linux中的一个头文件中

时间:2017-10-26 05:01:30

标签: linux shell

我的数据由逗号分隔符分隔 因此,通过在逗号之前将值作为主标题列进行讨论,如果相同的标题出现在某个地方,则通过放置打开和关闭的花括号将数据添加到一个标题中

请考虑我的示例以便更好地理解

输入文件数据

19,66:BILL
19,34
19,02
21,:0
21,:0
21,:1
21,37
26,:19
26,87
27,35
31,77
31,12
31,202

输出文件数据

19,{66:BILL}{34}{02}
21,:{0}{:0}{:1}
21,37
26,{:19}{87}
27,35
31,{77}{12}{102}

1 个答案:

答案 0 :(得分:0)

使用awk

的解决方案
$ awk -F, '{a[$1]=a[$1]"{"$2"}"} END{for (i in a) print i FS a[i]}' input.csv

假设输入文件仅包含两列,则脚本通过将具有相同索引a的所有行的值$2附加到同一元素{{}}来构造数组$1。 1}}

<强> input.csv

a[$1]

<强>输出

19,66:BILL
19,34
19,02
21,:0
21,:0
21,:1
21,37
26,:19
26,87
27,35
31,77
31,12
31,202