【发布时间】:2014-07-10 21:44:27
【问题描述】:
我有两个类似于此的字段的 file.csv:
text,something
more,somethingelse
text,another
foo,bar
我对文件进行排序,以便第一个字段中的所有内容都按顺序排列,以便第一列中的所有重复项都组合在一起。
foo,bar
more,somethingelse
text,something
text,another
我需要做但不知道的是将第二个字段中的文本移动到与第一个字段中的副本相同的行,用“;”分隔。输入第二个字段的顺序无关紧要。我只希望输出是这样的:
foo,bar
more,somethingelse
text,something; another
我已经尝试过了,但它不起作用。不足为奇,因为我只是在学习 awk。
sort file.csv | awk 'BEGIN{last = ""; value = 0;} {if ($1 == last) {print $0, "; value";}}'
我希望 'last' 保存上一行的第一个字段的值,而 'value' 保存上一行的第二个字段的值。但我不知道如何让它发挥作用。
是否可以使用 shell 脚本来执行此操作?感谢您的任何意见。
【问题讨论】:
标签: awk