Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File 选择文件中一个字段值相同的行组_File_Pseudocode - Fatal编程技术网

File 选择文件中一个字段值相同的行组

File 选择文件中一个字段值相同的行组,file,pseudocode,File,Pseudocode,我不知道这个问题怎么说,所以我会尽力解释: 假设我有一个文件: 100001,ABC,400 100001,EFG,500 100001,ABC,500 100002,DEF,400 100002,EFG,300 100002,XYZ,1000 100002,美国广播公司,700 100003,DEF,400 100003,EFG,300 我想抓住每一行,并将它们分组在一起,其中每一行的第一个值相同。所以所有100001个一起,所有100002个一起,等等 我只需要你帮我弄清楚逻辑。不需要语言中

我不知道这个问题怎么说,所以我会尽力解释:

假设我有一个文件:

100001,ABC,400

100001,EFG,500

100001,ABC,500

100002,DEF,400

100002,EFG,300

100002,XYZ,1000

100002,美国广播公司,700

100003,DEF,400

100003,EFG,300

我想抓住每一行,并将它们分组在一起,其中每一行的第一个值相同。所以所有100001个一起,所有100002个一起,等等

我只需要你帮我弄清楚逻辑。不需要语言中的特定实现


伪代码很好。

我假设行是按COL1排序的。 我假设“一起走”意味着它们被连接成一行

带有伪代码的逻辑:

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;} '