【问题标题】:Split a batch of text files using pattern使用模式拆分一批文本文件
【发布时间】:2014-12-24 02:27:21
【问题描述】:

我有一个包含将近一千个 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"/ {*}

两者都会导致无效的模式错误。非常感谢您的帮助!

【问题讨论】:

    标签: batch-processing csplit


    【解决方案1】:

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

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

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

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

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

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

    【讨论】:

    • @aquadhere 这个答案解决了您的问题吗?如果是这样,请将其标记为已接受,以便其他人可以看到它适用于此案例。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-31
    • 1970-01-01
    • 2019-12-02
    • 1970-01-01
    • 2022-11-27
    • 2013-09-23
    相关资源
    最近更新 更多