如何从Linux中的MS Office文档中提取文本?


18

我需要一种在Linux中从所有MS Office文档类型(Word,Excel,Powerpoint)中提取文本的方法。我设想可能会有几种不同的方法来完成此任务,例如Bash或Python脚本,或者将它们转换为PDF,然后使用诸如pdftotext之类的工具提取文本。

看来这可能是司空见惯的要求。是否有既定的程序或工具可以轻松完成此任务?

Answers:


16

Catdoc可以将doc,xls和ppt转换为文本。第二个选择是wvWare

有关更多实用程序,请检查http://www.linux.com/archive/articles/52385,以获取文字转文本的掩护和


卡特多克!那就是我要找的东西!它也适用于ODF吗?
Phyo Arkar Lwin

只是谷歌搜索并获得stosberg.net/odt2txt。从未尝试过,似乎可以完成工作。
nahar

很好,谢谢。catdoc可以,但是它不能将xls,ppt转换为test,我为他们使用xls2csv和apache-tika。去看一下!
Phyo Arkar Lwin

@ nahar,odt2txt仅适用于odt格式,不适用于ms doc。
艾伦

1
太棒了,catdoc给了我分割错误
fotanus 2014年

8

我终于找到了用于脚本化文档分析的完美工具,它是apache-tika,它可以将大量的非文本格式解析为非常酷的文本!

在此处获取Apache Tika:

http://tika.apache.org/

(苹果机用户家酿:brew install tika

命令行界面的工作方式如下:

tika --text something.docx > something.txt


+1:Apache Tika是一个严肃的开源项目,也可以在Windows中运行,可以从命令行运行,它具有拖放式GUI,可以打开任何内容(Word,Excel,PowerPoint,PDF,svg),提取以下内容的元数据:该文档也是如此。在尝试了上述大多数工具之后,Apache Tika就是我想要的。这应该是可接受的答案(我不知道您是否可以接受自己的答案)
user2518618 2015年


7

Abiword可以从命令行转换它知道的任何文件格式。

从Word转换为纯文本:

abiword --to=txt myfile.doc

从Word文件制作pdf:

abiword --to=pdf myfile.doc

等等。在这些情况下,结果将是myfile.txt或myfile.pdf。如果要指定输出名称,也可以执行以下操作:

abiword --to=txt --to-name=output.txt myfile.doc

将ODT转换为Word:

abiword --to=doc myfile.odt

将Word转换为ODT:

abiword --to=odt myfile.doc

为公平起见,应该注意AbiWord使用wvWare来处理Word文档,但是即使wvWare主页也建议在大多数转换中使用AbiWord。

我讨厌文字处理程序。这是我安装了AbiWord的主要原因。

您可能还对unoconv感兴趣,它是OpenOffice已知的支持格式的类似工具(其中包括电子表格等),但是我个人没有经验。


对于.DOCX文档它搞糟:S但.DOC一个很好的解决方案
战争前线

3

使用LibreOffice,您可以执行以下操作:

libreoffice --invisible --convert-to pdf file1.ppt file2.ppt

4
您可以使用文本过滤器将其转换为txt:libreoffice --invisible --convert-to txt:文本文件
Gagaro 2014年

0

您可以使用CUPS(虚拟打印机)和ld。


有趣的是,可以将任何可打印的内容转换为PDF吗?您能指出我和为Doc或Xls这样做的示例吗?
Phyo Arkar Lwin

0

wv是一种选择,可以从命令行告诉IIRC OpenOffice以pdf格式导出并退出。


unoconv似乎是我不记得的与OpenOffice相关的工具。
ptman 2010年


0

1.doc catdoc或antiword对doc文件进行转换,可以使用以下命令catdoc file.doc> file或antiword file.doc> file

  1. docx docx2txt

  2. pdf emacs文件.pdf ctrl-x ctrl-s文件


(1)Catdoc是在将近一个年前的一个小时内发布的答案中提出的。为什么要重复呢?(2)在哪里可以获得反词?(3)下半部分是什么意思?
Scott

-1

Docsplit是从pdf提取文本的理想工具。这是红宝石。因此,在使用docsplit命令之前,您应该在Linux系统中安装ruby和gem。

如果您的系统没有红宝石和宝石,请按照说明进行操作。

您必须是root用户才能安装该软件(假设您希望所有用户都可以使用该软件)。

在Linux上安装ruby:yum install ruby
安装gem,请下载最新的gem软件包,然后按照说明进行操作

tar xzf ruby​​gems-xxxx.tgz
cd ruby​​gems-xxxx
ruby setup.rb

现在已经安装了RubyGems,您应该有了gem命令(gem是用于与RubyGems软件包系统进行交互的命令)。通过运行以下命令进行测试:

宝石清单

现在,转到下一步,要安装docsplit gem,请转到以下站点。 http://documentcloud.github.com/docsplit/


这与OP的要求完全相反。
Carf 2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.