Пакетная конвертация.doc файлов.txt (обычный текст ASCII) и/или.HTML рекурсивно в папках и подпапках, Windows и Mac?

есть ли инструмент для этого. Я видел некоторые инструменты Python / Java для автоматизации OpenOffice, но кто-нибудь надежно написал сценарий, чтобы сделать более одного файла, и рекурсивно через дерево папок/каталогов .doc файлы в нем, размещение преобразованных .txt и .HTML-файлы рядом с исходным файлом в его расположении.

13
задан Hennes
16.12.2022 18:13 Количество просмотров материала 3434
Распечатать страницу

3 ответа

Linux / Unix

Я знаю два инструмента Unix:

  • catdoc
  • antiword

вы можете просто использовать find идти через папку рекурсивно

find . -name "*.doc" -exec <command> {} \;

здесь <command> является соответствующим действием для преобразования .doc файл в a .txt файл с помощью catdoc или antiword.

Mac OS X

вы можете использовать те же инструменты, но вам придется установить их с помощью пример,доморощенного. Для этого введите в терминале:

ruby -e "$(curl -fsSL https://gist.github.com/raw/323731/install_homebrew.rb)"

и затем:

brew install catdoc
brew install antiword
3
отвечен slhck 2022-12-18 02:01

@slhck ваше решение почти работает, но вывод на дисплей / STDOUT со всеми файлами, соединенными вместе. Мне нужна индивидуальность .txt файлов, как выход. Причина в том, что мы не учитываем имя файла в выводе.

чтобы обойти необходимость обхода иерархии папок, если я использую Windows search для *.doc, а затем скопируйте результаты в папку, чтобы поместить их все в одну папку, сглаженную, затем я могу загрузиться в Ubuntu и запустить следующее.

(У меня файл / папка рекурсии кусок кода где-то, который я буду выкопать и добавить позже, если время.) Но пока достаточно просто сгладить файловую иерархию, как указано выше.

кстати, catdoc работает лучше, чем antiword, потому что antiword жалуется, что некоторые файлы не являются документами word, как правило .doc файлы с форматированием и блоки текста, организованные в виде кадров в рамках doc. конверотора catdoc, преобразующего файлы, кажется, чтобы преобразовать все мои документы.

#!/usr/bin/perl -w

 use File::Basename;

 my $okFiles = "";
 my $couldntGet = "";

 @files = <*>;
 foreach $file (@files) 
 {
   if ( $file =~ m/\.doc/ )
   { 
     my ( $filenameOnly, $dir, $ext ) = fileparse($file, qr/\.[^.]*/);
     if ( ( defined $filenameOnly ) && ( defined $ext ) )
     {
       $okFiles .= "file: ".$file." filename only:".$filenameOnly." extension:".$ext."\n";

       system( "catdoc \"".$file."\" > \"".$filenameOnly.".txt\"" );
     }
     else
     {
       $couldntGet .= "*file: ".$file." - couldn't get filename only and extension\n";
     }
   }

   print $okFiles;

   print $couldntGet;
 } 
1
отвечен therobyouknow 2022-12-18 04:18

catdoc и antiword имеют очень ограниченную поддержку формата файлов, последняя версия, которую они понимают, - Word 2000.

Я знаю, что вы можете написать сценарий LibreOffice для преобразования любых файлов, которые он понимает, в текст или pdf (это то, что делает MediaGoblin), но я не знаю, как именно это сделать.

0
отвечен Shnatsel 2022-12-18 06:35

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх