问题标签 [csplit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
127 浏览

bash - 在 Shell 脚本中将大文件拆分为较小的块

我需要使用 shell 脚本根据较大文件中模式的最后一次出现将较大的文件拆分为较小的块。例如。

Sample.txt(文件将根据要搜索的模式的第三个字段进行排序)

“Pattern 1 = 00003”要搜索的输出文件必须包含sample_00003.txt

"Patren 2 = 00112" 要搜索的输出文件必须包含 sample_00112.txt

用过的

和 grep 命令,但由于文件大小为 300+ MB,因此非常耗时。

0 投票
1 回答
25 浏览

linux - 使用 csplit 将静态字符串作为 REGEXP 传递时遇到问题

我在 Linux 终端上,正在努力将一个大文本文件拆分成几个小文件。我正在尝试csplit,但csplit要求分隔符模式作为 REGEXP 传递。静态分隔符模式是, lorum ipsum. 我如何将其写为 REGEXP?读了一点之后,我希望/'^, lorum ipsum$'/能工作,但事实并非如此。谁能帮我正确的语法?

0 投票
2 回答
289 浏览

shell - 什么类似 csplit 的命令可以让我从一个文本文件创建多个文件?

有什么工具可以做我想做的事吗?我想在以@开头的行拆分文件“一个”,然后是文件名:

什么是拆分?

用例:

  • 在一个文件中编辑我的 html、js、css 和 docs(文件不大)
  • m4 预处理一个文件
  • splitit 读取 m4 输出并写出几个文件
  • 缩进/美化文件
  • 用 cat 重新组合成更少的文件...
0 投票
2 回答
173 浏览

r - 当字段嵌入分隔符时,cSplit 不起作用

我正在使用 cSplit 将一列拆分为三个单独的列。分隔符是“/”

但是,我的一个字段嵌入了“/”分隔符。第三行的第三个元素应该是并且在拆分后保持为“f/j”。

当我在以下示例中尝试时,它会创建一个额外的(第四)列

当我在包含超过 5,000 行的原始数据集中尝试它时,会产生以下错误:

fread(x, sep[i], header = FALSE) 中的错误:

预期 3 列,但第 2307 行在处理所有列后包含文本。使用 fill=TRUE 再试一次。另一个原因可能是 fread 在区分一个或多个在不平衡非转义引号内嵌入了 sep='/' 和/或 '\n' 字符的字段的逻辑失败了。如果 quote='' 没有帮助,请提出问题以确定是否可以改进逻辑。

0 投票
1 回答
397 浏览

regex - 为什么 `csplit` 和 `grep` 不就是否存在匹配达成一致?

我正在尝试csplit在 BASH 中使用 1500-1600 的年份分隔文件作为分隔符。

当我执行命令时

csplit Shakespeare.txt '/1[56]../' '{36}'

它几乎可以工作,除了至少两个问题:

  1. xx00这将输出 38 个文件,而不是 36 个,编号为xx37. (也xx00完全空白。)我不明白这怎么可能。
  2. 其中一个文件(为什么似乎csplit返回 37 个非空文件而不是我预期的 36 个非空文件)不是以 15XX 或 16XX 开头——它以“ACT 4 SCENE 15\n”开头(其中 \n 应该表示换行符或换行符)。我不明白如何csplit将新行/换行符与数字匹配。

当我执行命令时(这就是我想要的)

csplit Shakespeare.txt '/1[56][0-9][0-9]/' '{36}'

终端返回错误:csplit: 1[56][0-9][0-9]: no match加上在执行上述操作时列出的所有数字。

这对我来说尤其没有意义,因为grep另有说明:

grep -c "1[56][0-9][0-9]" Shakespeare.txt
36

grep -c "1[56].." Shakespeare.txt
36

注: man csplit表示我有2005年1月26日以后的BSD版本。man grep表示我有2010年7月28日以后的BSD版本。

0 投票
2 回答
181 浏览

r - cSplit 强制不必要的 NA 行

我有一个大数据集,其中一个小样本看起来像下面的 4 x 5 小标题。我正在尝试使用如下变量将多个分隔列拆分为唯一行c=="Split"

但是,这会强制增加一行 NA,如第 4 行所示:

如果我只拆分两列,这不是问题。如何让它不产生 NA 行?而且,有没有办法在不设置cSplit子集的情况下进行工作c

0 投票
1 回答
317 浏览

bash - 在bash中按上下文和大小拆分文件

我有一组大文件必须分成 100MB 的部分。我遇到的问题是行由^B ASCII(或 \u002)字符终止。

因此,我需要能够获得 100MB 的部分(显然加上或减去几个字节),这也说明了行尾。

示例文件:

0001112222333 ... NNN^B000111222333 ... NNN^b000111222333 ... ..nnn^B000111222333...nnn^B000111222333...nnn^B000111222333...nnn^B000111222333...nnn^B000111222333...nnn^B000111222333...nnn^B000111201123...nnn^B0112... nnn^B000111222333...nnn^B000111222333...nnn^B000111222333...nnn^B000111222333...nnn^B

“线”的大小可以不同。

我知道 split 和 csplit,但无法将两者结合起来。

关于如何做 100MB 块来保持线条完好无损的任何建议?作为旁注,我无法将行结尾更改为\n,因为这会损坏文件,因为^B之间的数据必须保持新行字符(如果存在)。

0 投票
1 回答
80 浏览

r - cSplit_e 不返回二进制数据帧

我有一个数据框,其中有一Genre列的行如Action,Romance. 我想拆分这些值并创建一个二进制向量。如果Action,Romance,Drama是所有可能的流派,那么上述行将1,1,0在输出数据框中。

我发现了这个这个SO 帖子,以及这个 CRAN 文档涵盖 cSplit_e,但是当我使用它时,我没有得到二进制数据帧输出,我得到的是带有一些加扰值的原始数据帧。

编辑:问题似乎是它将新列添加到旧数据框中,而不是创建新框架。我怎样才能让流派进入他们自己的框架?

0 投票
1 回答
973 浏览

mysql - 如何拆分一个大的mysqldump文件以分别获取每个结构和数据?

基于https://gist.github.com/jasny/1608062#file-mysql_splitdump-sh

我想拆分我的大 mysqldump 文件以分别获取每个表结构和表数据。

我不是 bash 脚本专家,我搜索模式以拆分转储文件以获取多个文件,例如:

  • table_one_structure.sql
  • table_one_data.sql
  • table_two_structure.sql
  • table_two_data.sql
  • ETC ..
0 投票
1 回答
332 浏览

linux - 使用 csplit 将大文件划分为具有确定名称的小文件

有一个非常大的纯文本文件,大约有 4000 万行,每行具有相同的长度和格式,我们想使用csplit将它逐行拆分为 N 个文件。例如,如果 N 为 80,则生成的文件的名称应为:

注意 FILE1.txt, FILE2.txt ... FILE80.txt 对我们无效。谢谢!