0

我有一个包含将近一千个 html 文件的目录。每个文件都需要根据重复出现的模式(标题)分成多个文本文件。我在 Windows 机器上,使用 GnuWin32 工具。

对于单个文件,我找到了一种方法:

csplit 1.html -b "%04d.txt" /"Words in heading"/ {*}

但我不知道如何对整个 HTML 文件集重复此操作。这个:

csplit *.html -b "%04d.txt" /"Words in heading"/ {*}

不起作用,这也不起作用:

for %i in (*.html) do csplit *.html -b "%04d.txt" /"Words in heading"/ {*}

两者都会导致无效的模式错误。帮助将不胜感激!

4

1 回答 1

1

选项/参数的顺序对 很重要csplit。而且它不会接受多个文件。它可以帮助您到达那里:

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

我很惊讶您的第一个示例适用于单个文件。真的应该改成:

% csplit  -b "%04d.txt"  1.html  "/Words in heading/" "{*}"
          ^^^^^^^^^^^^^  ^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^
            OPTS/ARGS     FILE    PATTERNS

另请注意,我将您的引用更改为围绕论点。您可能还需要引用您的最后一个"{*}".

我不确定您使用的是什么外壳,但如果该 for 循环语法是合适的,那么固定命令应该在循环中工作。

于 2015-07-28T22:23:42.633 回答