【发布时间】:2014-10-02 02:31:18
【问题描述】:
我在空格分隔文件中按第 2 列、第 3 列和第 1 列排列了这些数据(我使用 linux 排序来做到这一点):
0 0 2
1 0 2
2 0 2
1 1 4
2 1 4
我想创建一个新文件(保持旧文件不变)
0 2 0,1,2
1 4 1,2
基本上将字段 2 和 3 放在首位,并将字段 1 的元素(作为逗号分隔的列表)按它们分组。有没有办法通过 awk、sed、bash 一个班轮来做到这一点,以避免为此编写 Java、C++ 应用程序?
【问题讨论】:
-
我不明白/不清楚。我不知道我是否理解第一行“0 2 0,1,2”:{1st row, 2nd col} {1st row, 3rd col} {comma-separated list of values of the 1st column},是正确的方法 ?我不明白“1 4 1,2”是从哪里来的?
-
输入第 4 行和第 5 行相同。第 2 列和第 3 列,后跟匹配行的第 1 列的值的逗号分隔列表。
-
我很傻,我没有注意到“x 0 2”出现了 3 次和“x 1 4”出现了两次。我之前的评论对第一行输出错误:逗号分隔的第一列值列表,其中第二和第三值相同(而不是整个第一列的值)。
-
我对所有正确答案都投了赞成票。