【发布时间】:2022-12-07 00:42:38
【问题描述】:
我需要帮助根据每个子文件允许的最大行数将一个大文件(160 万条记录)拆分为多个文件,但需要注意的是订单不应跨文件溢出并出现在多个文件中。
关于文件的快速概述: 该文件包含有关零售店交易的订单信息。每个订单可以有多个项目。下面是示例文件的一个小示例。
样本文件:
| order_nu | item_nu | Sale |
|---|---|---|
| 1 | 1 | 10 |
| 1 | 2 | 20 |
| 1 | 3 | 30 |
| 2 | 1 | 10 |
| 2 | 2 | 20 |
| 3 | 1 | 10 |
| 3 | 2 | 10 |
| 4 | 1 | 20 |
| 4 | 2 | 24 |
| 4 | 3 | 34 |
| 4 | 4 | 10 |
| 4 | 5 | 20 |
| 5 | 1 | 30 |
| 5 | 2 | 20 |
| 5 | 3 | 40 |
是否可以编写一个 Linux 脚本来帮助我根据行数拆分文件,但要注意一个命令不应跨文件溢出并出现在多个文件中。 例如,对于上面的文件,我需要将其拆分,条件是每个文件的单个子文件不应超过 5 条记录,并且一个订单不应出现在多个文件中(假设一个订单不会有更多超过 5 项)。以下是预期的输出:
子文件 1: | order_nu | item_nu |销售 | | ------ | ------|--------| | 1 | 1 | 10 | | 1 | 2 | 20 | | 1 | 3 | 30 | | 2 | 1 | 10 | | 2 | 2 | 20 |
子文件 2: | order_nu | item_nu |销售 | | ------ | ------|--------| | 3 | 1 | 10 | | 3 | 2 | 10 |
子文件 3: | order_nu | item_nu |销售 | | ------ | ------|--------| | 4 | 1 | 20 | | 4 | 2 | 24 | | 4 | 3 | 34 | | 4 | 4 | 10 | | 4 | 5 | 20 |
子文件 4: | order_nu | item_nu |销售 | | ------ | ------|--------| | 5 | 1 | 30 | | 5 | 2 | 20 | | 5 | 3 | 40 |
如果有任何问题,请告诉我 谢谢!
【问题讨论】: