有没有一种方法可以让split/csplit在linux系统上使用包含换行符的列?

有没有一种方法可以让split/csplit在linux系统上使用包含换行符的列?,linux,csv,unix,split,csplit,Linux,Csv,Unix,Split,Csplit,当我试图将较大的文件拆分成一堆较小的文件时,遇到了一些问题,其中一列有新行。在我尝试拆分的CSV文件中,它有分隔符,即管道(|),每行用换行符(\n)分隔。由于1列中有一组换行符,因此可能会导致该CSV文件的外观如下所示: col1 | col2 | col3 |插入某物 在这里 这就是意义 新文件 或格式 随机文本 文本| col5 | col6 | col7 分裂时,它可能会导致我的文档(如果使用按行分割或字节分割)正好在COL4的中间分裂。如果发生这种情况,该文件将被弄乱,我将无法稍后处理

当我试图将较大的文件拆分成一堆较小的文件时,遇到了一些问题,其中一列有新行。在我尝试拆分的CSV文件中,它有分隔符,即管道(|),每行用换行符(\n)分隔。由于1列中有一组换行符,因此可能会导致该CSV文件的外观如下所示:

col1 | col2 | col3 |插入某物 在这里

这就是意义

新文件

或格式

随机文本

文本| col5 | col6 | col7

分裂时,它可能会导致我的文档(如果使用按行分割或字节分割)正好在COL4的中间分裂。如果发生这种情况,该文件将被弄乱,我将无法稍后处理该文件以将该数据插入到我的表中

我尝试了使用split和csplit,但我不确定我是否能够实现基于行+分隔符的良好分割。如果我尝试在匹配的地方使用csplit正则表达式(|和newline),它只会选择以下内容:text | col5 | col6 | col7->,因此很遗憾,它也不会工作


这里没有解决方案了,也许split和csplit根本不可能,但我愿意接受建议。谢谢大家!

你确定那个字段周围没有引号吗?你是说有新行的col4?我只是重复检查,没有引号,单词之间只有新行,这会导致文件生成类似于我上面描述的内容。不幸的是,我无法控制如何接收这些文件,因此我必须处理这里得到的内容。为什么不将字段值中的新行替换为其他字符?@Nurdin Ibrisimovic-如果我尝试在匹配的地方使用csplit regex(|和newline),您应该在您编写的地方添加使用过的regex,它只会拾取以下内容:text | col5 | col6 | col7。@DigvijayS因为我处理的是大文件,如果我这样做而不是不将该文件作为一个整体拆分,它会大大降低我的性能。我可以拆分大多数文件,但这取决于困扰我的内容。你确定该字段周围没有引号吗?你是指带有新行的col4?我只是重复检查,没有引号,单词之间只有新行,这会导致文件生成类似于我上面描述的内容。不幸的是,我无法控制如何接收这些文件,因此我必须处理这里得到的内容。为什么不将字段值中的新行替换为其他字符?@Nurdin Ibrisimovic-如果我尝试在匹配的地方使用csplit regex(|和newline),您应该在您编写的地方添加使用过的regex,它只会拾取以下内容:text | col5 | col6 | col7。@DigvijayS因为我处理的是大文件,如果我这样做而不是不将该文件作为一个整体拆分,它会大大降低我的性能。我可以拆分大多数文件,但这取决于文件中困扰我的内容。