【发布时间】:2023-03-19 17:58:01
【问题描述】:
我有一个像下面这样的文件。
1111|p1
1111|p2
1111|p3
1111|p4
1111|p5
1111|p6
2222|p1
2222|p2
等等..
一个人 (1111) 每行可以有一个产品。
我需要像下面这样的输出
1111|row1|p1|p2|p3|p4|p5
1111|row2|p6
2222|p1|p2
3333|p1|p2|p3
所以一行只允许最多 p5,其余的应该在第 2 行。 请帮助我在 Perl 中以这种方式获得输出。
【问题讨论】:
-
如果“1111|p7”出现在一些 2222s 之后怎么办?它是否与其他合并?如果是,是否可以对输出进行排序,或者是否应该按照产品在文件中首次出现的顺序?
-
“row1”和“row2”真的是你想要的吗?
-
row1 和 row2 可以是任何东西,它只是为了计算每个人的行数。并且所有的数字都是排序好的,所以后面不会出现1111。
标签: perl array-merge