shell : csplit 命令

shell : csplit command

我正在尝试对 700 Mo 的文件使用 csplit 命令。 我想将该文件拆分为 30 个较小的文件,并尊重我用来启动新文件的标签名称。

<head>
 <test>1 </test>
</head>

<head>
 <test>2 </test>
</head>

<head>
 <test>3 </test>
</head>
...
<head>
 <test> 80 </test>
 </head>

假设我有 80 个组标签,所以我想生成正好 30 个文件。 那么我如何使用 csplit 来做到这一点。 我知道的开头是

csplit output_prefix File '/<head>/' '{*}'

发现 csplit 就成功了一半!这应该有效:

% csplit --prefix File --elide-empty-files foo.xml '/<head>/' '{*}'
33
33
...

% ls
File00  File01  File02  ...  foo.xml

option/argument顺序很重要。尝试 csplit --help 查看它的所有选项。

% csplit --help
Usage: csplit [OPTION]... FILE PATTERN...