2014-10-28 2 views
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"/ {*} 

Оба результата в недопустимом шаблоне. Помощь будет очень признательна!

ответ

1

Порядок опций/аргументов важен с csplit. И он не будет принимать несколько файлов. Это поможет вам:

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

Я удивлен, что ваш первый пример работает для одного файла. Это действительно должно быть изменено на:

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

Заметьте также, что я изменил ваш ваш процитировать быть вокруг аргументов. Вероятно, вам также нужно будет указать ваш последний "{*}".

Я не уверен, какую оболочку вы используете, но если этот синтаксис для цикла является подходящим, то фиксированная команда должна работать в цикле.

+0

@aquadhere Этот ответ решает вашу проблему? Если это так, отметьте его как принятый, чтобы другие могли видеть, что он работал для этого случая. –