gpt4 book ai didi

linux - 根据条件和大约行数将文件拆分为多个文件

转载 作者:行者123 更新时间:2023-12-04 01:05:04 25 4
gpt4 key购买 nike

我有一个大文件,其中包含如下示例

A222, 00000, 555
A222, 00100, 555
A222, 00200, 555
A222, 00300, 555
A222, 00000, 555
A222, 00100, 555
A222, 00000, 555
A222, 00200, 555

这是一个包含订单标题(00000)和相关订单详细信息(00100、00200 等)的示例文件。我想将每个文件拆分为大约 40000 行,以便每个文件都包含订单标题和订单详细信息。

我使用GNU parallel实现了40000行的拆分,但是我无法实现拆分以满足确保Order Header及其相关订单明细都在一起的条件在一行中确保每个文件都有大约 40000 行

对于上面的示例文件,如果我必须每行拆分大约 5 行,我会使用下面的

parallel --pipe -N5 'cat > sample_{#}.txt' <sample.txt

但那会给我

sample1.txt
A222, 00000, 555
A222, 00100, 555
A222, 00200, 555
A222, 00300, 555
A222, 00000, 555

sample2.txt
A222, 00100, 555
A222, 00000, 555
A222, 00200, 555

它将在第一个文件中包含 2nd Order header ,在第二个文件中包含其相关的订单详细信息。

想要的应该是

sample1.txt
A222, 00000, 555
A222, 00100, 555
A222, 00200, 555
A222, 00300, 555

sample2.txt
A222, 00000, 555
A222, 00100, 555
A222, 00000, 555
A222, 00200, 555

最佳答案

你可以试试这个代码:

( export hdr=$(head -1 sample.txt); parallel  --pipe -N4 '{ echo "$hdr"; cat; } > sample_{#}.txt' < <(tail -n +2 sample.txt) )

我们基本上将标题行分开并在剩余行上运行拆分,同时在每个拆分文件中包含标题。

关于linux - 根据条件和大约行数将文件拆分为多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66741098/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com