Sign up ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I need a way to extract the text from all of the MS Office document types (Word, Excel, Powerpoint), in Linux. I envision that there might be several different approaches to accomplish this, such as a Bash or Python script, or converting them to PDF and then extracting the text using a tool such as pdftotext.

This seems like it might be a commonplace requirement. Is there an established procedure or tool to accomplish this easily?

share|improve this question

9 Answers 9

Catdoc can convert doc,xls & ppt to text. Second option would be wvWare.

For more utils check check for word to text coverters and

share|improve this answer
Catdoc! Thats the thing i am looking for! Will it also work for ODF ? – V3ss0n Jul 22 '10 at 4:38
Just googled & got never tried it, seems like it does the job. – nahar Jul 22 '10 at 5:27
cool thanks. catdoc is ok but it cant convert xls,ppt to test , i use xls2csv and apache-tika for them. check them out! – V3ss0n Oct 30 '10 at 21:37
@nahar, odt2txt only works on odt format, not ms doc. – Allen Jan 9 '13 at 6:28
great, catdoc gives me segmentation fault – fotanus Jul 30 '14 at 21:11

Abiword can convert from the commandline between any file formats it knows.

Convert from Word to plain text:

abiword --to=txt myfile.doc

Make a pdf from a Word file:

abiword --to=pdf myfile.doc

And so on. The results in these cases would be myfile.txt or myfile.pdf. If you want to specify the output name you can do that too:

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

Convert ODT to Word:

abiword --to=doc myfile.odt

Convert Word to ODT:

abiword --to=odt myfile.doc

In fairness to other answers, it should be noted that AbiWord uses wvWare to handle Word documents, but even the wvWare homepage recommends using AbiWord instead for most conversions.

I hate word processors. This is the main reason I have AbiWord installed.

You might also be interested in unoconv, which is a similar tool supporting formats OpenOffice knows (which would include spreadsheets and the like), but I have no experience with it personally.

share|improve this answer
For .docx document it mess up :S But a nice solution for .doc – Warface Apr 3 '14 at 13:20

With LibreOffice you can do:

libreoffice --invisible --convert-to pdf file1.ppt file2.ppt
share|improve this answer
You can use the Text filter to convert to txt: libreoffice --invisible --convert-to txt:Text files – Gagaro Apr 23 '14 at 8:57
up vote 4 down vote accepted

I finally found the perfect tool for scripting document parsing , it is apache-tika , it can parse gazillion non-text formats into text which is very cool!

Get Apache Tika here:

(Mac Homebrew users: brew install tika)

The command-line interface works like this:

tika --text something.docx > something.txt

share|improve this answer
+1: Apache Tika is a serious Open source project, works also in Windows, works from the command line, it has a GUI with drag and drop, opens anything (Word, Excel, PowerPoint, PDF, svg), extracts the metadata of the document as well. After trying most the tools above, Apache Tika is what I was looking for. This should be the accepted answer (I don't know if you can accept your own answer) – user2518618 Oct 20 at 12:04
did , shamelessly ... :D – V3ss0n Oct 22 at 15:58

You could use CUPS ( virtual printer ) and by using ld.

share|improve this answer
Interesting , can that convert any printable stuff to PDF? Can you point me and example doing that for Doc or Xls? – V3ss0n Jul 22 '10 at 4:40

wv is one option and IIRC OpenOffice can be told from the command line to export as pdf and exit.

share|improve this answer
unoconv seems to be the OpenOffice-related tool I couldn't remember. – ptman Oct 23 '10 at 11:21

If you want to use Apache Tika in a Python project, please check out this blog post.

share|improve this answer

1.doc catdoc or antiword for doc files to convert you can use the following command catdoc file.doc > file or antiword file.doc > file

  1. docx docx2txt

  2. pdf emacs file.pdf ctrl-x ctrl-s file

share|improve this answer
(1) Catdoc was proposed in an answer that was posted within an hour of the question, almost three years ago. Why are you repeating it? (2) Where can antiword be obtained? (3) What does the bottom half of your answer mean? – Scott Apr 15 '13 at 17:24

Docsplit is the perfect tool to extract the text from pdf. It's a ruby gem. So you should install the ruby and gem in your linux system before using the docsplit command.

If your system didn't have the ruby and gem, please follow the instruction.

You must be root to install the software (assuming you want it to be available to all users).

Install the ruby on linux : yum install ruby
Install the gem, please download the latest gem package, then follow the instruction

tar xzf rubygems-x.x.xx.tgz
cd rubygems-x.x.xx
ruby setup.rb

Now that RubyGems is installed, you should have the gem command (gem is the command used to interact with the RubyGems package system). Test it out by running:

gem list

Now, move to next step, to install the docsplit gem, please goto the following site.

share|improve this answer
This is the exact opposite of what the OP asked for. – CarlF Aug 15 '11 at 12:54

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.