【发布时间】:2015-05-23 21:46:27
【问题描述】:
我有一个 csv 文件,
id1,v1,v2,v3,v4
id2,v1,v2,v6,v4
id1,v7,v8,v3,v9
id1,v10,v11,v12,v13
id2,v3,v5,v8,v7
因为,文件没有排序,也不应该排序! 我想要输出为:
id1,v1|v7|v10,v2|v8|v11,v3|v12,v4|v9|v13
id2,v1|v10,v2|v5,v6|v8,v4|v7
其中,列中的所有相应值都合并到具有相同 id 的记录中的相应列,除了重复值(id1 见第 3 列中的 v3)和 id。
我使用此处给出的代码http://www.robelle.com/tips/st-export-notes.html 进行了尝试。但它需要的远不止这些。
如何使用 perl 实现这一点?我是 perl 的新手。提前致谢!
【问题讨论】:
-
管道分隔的复合字段是否必须按照它们在文件中出现的顺序排列?例如,
id1,v10|v1|v7,...好吗? -
@Borodin,抱歉回复晚了,顺序不重要。
标签: linux perl csv merge perlscript