基于字段值linux合并行

Gun*_*her 2 python linux merge awk

我正在尝试根据第一个字段中的值合并列。我试过使用 awk,但无济于事。请参阅示例输入和输出:

Input:  
10013   97      1503384  
10013   196     1506234  
10013   61      1507385  
10013   1559    1508385  
10014   1726    1514507  
10014   960     1519162  
10015   1920    1545535  
10015   124     1548915  
10015   77      1550284  

Desired_Output:  
10013   97,196,61,1559  1503384,1506234,1507385,1508385  
10014   1726,960        1514507,1519162  
10015   1920,124,77     1545535,1548915,1550284  
Run Code Online (Sandbox Code Playgroud)

提前感谢您的任何建议!

Rom*_*est 5

最短的 GNUdatamash解决方案:

datamash -sW -g1 collapse 2 collapse 3 <file
Run Code Online (Sandbox Code Playgroud)
  • -g1 - 按第一个字段分组
  • collapse N- 操作生成N每组中字段的所有输入值的逗号分隔列表

输出:

10013   97,196,61,1559  1503384,1506234,1507385,1508385
10014   1726,960    1514507,1519162
10015   1920,124,77 1545535,1548915,1550284
Run Code Online (Sandbox Code Playgroud)