我不确定如何说出这个问题,所以我会尽力解释一下:
假设我有一个文件:
100001,ABC,400
100001,EFG,500
100001,ABC,500
100002,DEF,400
100002,EFG,300
100002,XYZ,1000
100002,ABC,700
100003,DEF,400
100003,EFG,300
我想抓住每一行并将它们组合在一起,每行中的第一个值相同。所以所有100001都在一起,所有100002都在一起等等。
我只需要帮助搞清楚逻辑。不需要语言的特定实现。
伪代码很好。
答案 0 :(得分:0)
我假设COL1按顺序排列。 我假设"一起去#34;意味着它们被连接成一行。
伪代码的逻辑:
while not EOF
read line
if not same group
if not first line
print accumulated values
start new group
append values
print the last group
在awk中,您可以使用以下代码对其进行测试:
awk '
BEGIN { FS = ","; x=""; last="";}
{
if ($1 != last) {
if (x != "")
print x;
x=$1;
last=$1;
}
x=x";"$2";"$3;
}
END {print x;} '