Làm cách nào để trích xuất văn bản từ các tài liệu MS Office trong Linux?


17

Tôi cần một cách để trích xuất văn bản từ tất cả các loại tài liệu MS Office (Word, Excel, Powerpoint), trong Linux. Tôi hình dung rằng có thể có một số cách tiếp cận khác nhau để thực hiện điều này, chẳng hạn như tập lệnh Bash hoặc Python hoặc chuyển đổi chúng thành PDF và sau đó trích xuất văn bản bằng một công cụ như pdftotext.

Điều này có vẻ như nó có thể là một yêu cầu phổ biến. Có một quy trình hoặc công cụ được thiết lập để thực hiện điều này một cách dễ dàng?

Câu trả lời:


16

Catdoc có thể chuyển đổi doc, xls & ppt thành văn bản. Tùy chọn thứ hai sẽ là wvWare .

Để biết thêm tiện ích, hãy kiểm tra http://www.linux.com/archive/articles/52385 để chuyển đổi từ thành văn bản và


Catdoc! Đó là điều tôi đang tìm kiếm! Nó cũng sẽ làm việc cho ODF chứ?
Phyo Arkar Lwin

Chỉ cần googled và có stosberg.net/odt2txt . không bao giờ thử nó, có vẻ như nó làm công việc.
nahar

hay quá cảm ơn. catdoc là ok nhưng nó không thể chuyển đổi xls, ppt để kiểm tra, tôi sử dụng xls2csv và apache-tika cho họ. kiểm tra chúng
Phyo Arkar Lwin

@nahar, odt2txt chỉ hoạt động trên định dạng odt, không phải ms doc.
Allen

1
thật tuyệt, catdoc mang đến cho tôi lỗi phân khúc
fotanus

8

Cuối cùng tôi đã tìm thấy công cụ hoàn hảo để phân tích cú pháp tài liệu, đó là apache-tika, nó có thể phân tích các định dạng phi văn bản thành văn bản rất tuyệt!

Nhận Apache Tika tại đây:

http://tika.apache.org/

(Người dùng Mac Homebrew brew install tika:)

Giao diện dòng lệnh hoạt động như thế này:

tika --text something.docx > something.txt


+1: Apache Tika là một dự án nguồn mở nghiêm túc, cũng hoạt động trong Windows, hoạt động từ dòng lệnh, nó có GUI với tính năng kéo và thả, mở bất cứ thứ gì (Word, Excel, PowerPoint, PDF, svg), trích xuất siêu dữ liệu của tài liệu là tốt. Sau khi thử hầu hết các công cụ trên, Apache Tika là thứ tôi đang tìm kiếm. Đây phải là câu trả lời được chấp nhận (Tôi không biết liệu bạn có thể chấp nhận câu trả lời của chính mình không)
user2518618

2
đã làm, không biết xấu hổ ...: D
Phyo Arkar Lwin

7

Abiword có thể chuyển đổi từ dòng lệnh giữa bất kỳ định dạng tệp nào nó biết.

Chuyển đổi từ Word sang văn bản thuần túy:

abiword --to=txt myfile.doc

Tạo pdf từ tệp Word:

abiword --to=pdf myfile.doc

Và như thế. Kết quả trong những trường hợp này sẽ là myfile.txt hoặc myfile.pdf. Nếu bạn muốn chỉ định tên đầu ra, bạn cũng có thể làm điều đó:

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

Chuyển đổi ODT sang Word:

abiword --to=doc myfile.odt

Chuyển đổi Word sang ODT:

abiword --to=odt myfile.doc

Để công bằng cho các câu trả lời khác, cần lưu ý rằng AbiWord sử dụng wvWare để xử lý các tài liệu Word, nhưng ngay cả trang chủ wvWare cũng khuyên bạn nên sử dụng AbiWord thay vì hầu hết các chuyển đổi.

Tôi ghét bộ xử lý văn bản. Đây là lý do chính tôi đã cài đặt AbiWord.

Bạn cũng có thể quan tâm đến unoconv , một công cụ tương tự hỗ trợ các định dạng mà OpenOffice biết (sẽ bao gồm bảng tính và những thứ tương tự), nhưng cá nhân tôi không có kinh nghiệm với nó.


Đối với tài liệu .docx, nó gây rối: S Nhưng một giải pháp hay cho .doc
Warface

3

Với LibreScript bạn có thể làm:

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

4
Bạn có thể sử dụng bộ lọc Văn bản để chuyển đổi sang txt: libreoffice --invisible --convert-to txt: Tệp văn bản
Gagaro

0

Bạn có thể sử dụng CUPS (máy in ảo) và bằng cách sử dụng ld.


Thật thú vị, điều đó có thể chuyển đổi bất kỳ thứ có thể in thành PDF? Bạn có thể chỉ cho tôi và ví dụ làm điều đó cho Doc hoặc Xls không?
Phyo Arkar Lwin

0

wv là một tùy chọn và IIRC OpenOffice có thể được thông báo từ dòng lệnh để xuất dưới dạng pdf và thoát.


unoconv dường như là công cụ liên quan đến OpenOffice mà tôi không thể nhớ.
ptman


0

1.doc catdoc hoặc antiword cho các tệp doc để chuyển đổi, bạn có thể sử dụng lệnh sau catdoc file.doc> file hoặc antiword file.doc> file

  1. docx docx2txt

  2. tập tin pdf emacs.pdf tập tin ctrl-x ctrl-s


(1) Catdoc đã được đề xuất trong một câu trả lời được đăng trong vòng một giờ của câu hỏi, gần ba năm trước. Tại sao bạn lặp lại nó? (2) Trường hợp có thể lấy từ chống lại? (3) Nửa dưới của câu trả lời của bạn có nghĩa là gì?
Scott

-1

Docsplit là công cụ hoàn hảo để trích xuất văn bản từ pdf. Đó là một viên đá quý ruby. Vì vậy, bạn nên cài đặt ruby ​​và gem trong hệ thống linux của mình trước khi sử dụng lệnh docsplit.

Nếu hệ thống của bạn không có ruby ​​và đá quý, vui lòng làm theo hướng dẫn.

Bạn phải root để cài đặt phần mềm (giả sử bạn muốn nó có sẵn cho tất cả người dùng).

Cài đặt ruby ​​trên linux: yum install ruby
Cài đặt gem, vui lòng tải xuống gói gem mới nhất, sau đó làm theo hướng dẫn

tar xzf rubygems-xxxx.tgz
cd rubygems-xxxx
ruby setup.rb

Bây giờ RubyGems đã được cài đặt, bạn nên có lệnh gem (gem là lệnh được sử dụng để tương tác với hệ thống gói RubyGems). Kiểm tra nó bằng cách chạy:

danh sách đá quý

Bây giờ, chuyển sang bước tiếp theo, để cài đặt gem docsplit, vui lòng xem trang web sau. http://documentcloud.github.com/docsplit/


Điều này hoàn toàn ngược lại với những gì OP yêu cầu.
CarlF
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.