есть ли инструмент для этого. Я видел некоторые инструменты Python / Java для автоматизации OpenOffice, но кто-нибудь надежно написал сценарий, чтобы сделать более одного файла, и рекурсивно через дерево папок/каталогов .doc файлы в нем, размещение преобразованных .txt и .HTML-файлы рядом с исходным файлом в его расположении.
Пакетная конвертация.doc файлов.txt (обычный текст ASCII) и/или.HTML рекурсивно в папках и подпапках, Windows и Mac?
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
@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;
}
catdoc и antiword имеют очень ограниченную поддержку формата файлов, последняя версия, которую они понимают, - Word 2000.
Я знаю, что вы можете написать сценарий LibreOffice для преобразования любых файлов, которые он понимает, в текст или pdf (это то, что делает MediaGoblin), но я не знаю, как именно это сделать.
Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]