标签: csplit

使用正则表达式告诉csplit在哪里拆分文件

我有一个大文本文件,内容设置如下:

---
title: Lorim Ipsum Dolar
---
Lorim ipsum content
---
title: Excelvier whatever 
---
Lorim ipsum content goes here.
Run Code Online (Sandbox Code Playgroud)

我正在尝试将此文件拆分为单个文件csplit.

单个文件的内容格式如下:

---
title: Lorim Ipsum Dolar
---
Lorim ipsum content
Run Code Online (Sandbox Code Playgroud)

我希望能够像这样正确地使用---,换行符和标题 ---\ntitle

但是我无法选择它......

csplit -k products.txt '/---[^\n]title/' {99}
Run Code Online (Sandbox Code Playgroud)

我尝试了很多变化无济于事.我一直在"不配".

regex bash bsd csplit

7
推荐指数
2
解决办法
2万
查看次数

分割大文件的最佳方法

我试图拆分一个巨大的文本文件(约5亿行文本),这是非常规则的,看起来像这样:

-- Start ---

blah blah

-- End --

-- Start --

blah blah

-- End --

...
Run Code Online (Sandbox Code Playgroud)

其中......暗示重复模式,"blah blah"具有可变长度~2000行.我想分开第一个

-- Start --

blah blah

-- End --
Run Code Online (Sandbox Code Playgroud)

阻塞到一个单独的文件并从FASTEST中的原始文件中删除它(运行时,给定我将运行这么多次)可能的方式.

理想的解决方案是从原始文件中删除初始块并将其粘贴到新文件中,而不加载巨大的初始文件的尾部.

我用以下方式尝试了csplit:

csplit file.txt /End/+1 
Run Code Online (Sandbox Code Playgroud)

这是一种有效的方法,但在时间上效率不高.

编辑:如果我们从文件中删除最后一个"开始结束"块而不是第一个块,是否有解决方案?

regex unix perl file csplit

1
推荐指数
1
解决办法
223
查看次数

标签 统计

csplit ×2

regex ×2

bash ×1

bsd ×1

file ×1

perl ×1

unix ×1