如何根据行间距将csv文件解析为多个csv

How to parse csv file into multiple csv based on row spacing

我正在尝试构建气流 DAG,需要将一个 csv 中包含的 7 个表拆分为七个单独的 csv。

dataset1

header_a header_b header_c
One Two Three
One Two Three
                         <-Always two spaced rows between data sets 

dataset N <-提供数据详细信息的 csv 文件的一部分

header_d header_e header_f header_g
One Two Three Four
One Two Three Four

out: dataset1.csv datasetn.csv

根据我的研究,我认为我的解决方案可能在于 awk 搜索双空格?

编辑:按要求使用纯文本。

table1 details1,
table1 details2,
table1 details3,
header_a,header_b,header_c,
1,2,3
1,2,3


tableN details1,
tableN details2,
tableN details3,
header_a, header_b,header_c,header_N,
1,2,3,4
1,2,3,4

Always two spaced rows between data sets

如果您的 CSV 文件包含空行,并且您的目标是将由这些空行分隔的每个记录块写出到单独的文件中,那么您可以使用 awk 及其记录分隔符 RS 设置为空,然后默认将每个“段落”视为一条记录。然后可以将它们中的每一个重定向到一个文件,该文件的名称基于记录号 NR:

awk -vRS= '{print [=10=] > ("output_" NR ".csv")}' input.csv

这从 input.csv 读取并将块写入 output_1.csvoutput_2.csvoutput_3.csv 等等。

如果我对您的输入文件结构(或您的一般问题)的解释有误,请提供更多详细信息以进行澄清。