2014-10-28 64 views
0

我有一个包含近千个html文件的目录。每个文件都需要根据循环模式(标题)分成多个文本文件。我在一台Windows机器上使用GnuWin32工具。使用模式分割一批文本文件

我已经找到一种方法来做到这一点,单个文件:

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

但我不知道如何在整个一系列的HTML文件重复此操作。这样的:在一个无效的模式错误

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

两个结果:

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

不工作,也不这样做了。帮助将非常感谢!

回答

1

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

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

我很惊讶你的第一个例子适用于单个文件。这真的应改为:

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

还请注意,我改变了你的报价是周围的参数。您可能还需要引用最后的"{*}"

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

+0

@aquadhere这个答案解决了你的问题吗?如果是这样,请将其标记为已接受,以便其他人可以看到它适用于此案例。 – 2015-08-14 16:23:12