获取文件的“文本内容”

Kev*_*Cox 5 conversion binary text

我想知道是否有一种工具可以抓取文件的文本内容。基本上,我想放入 pdf、word 文档、压缩文件或其他任何内容,并获取其中包含的文本。

strings打印出可打印字符的序列,但这不适用于许多压缩格式。它的“愚蠢”性质也意味着它经常打印的不仅仅是文本。不过,对于未知的文件类型,这将是一个很好的后备。

有一个pdftotext命令几乎完全符合我的要求,但它只适用于 pdf。

是否有适用于多种格式或将更多这些工具联系在一起的工具?

附加信息

我很多人都提到他们的工具是非标准的。我只想指出这很好。

slm*_*slm 6

除了strings我从来没有见过一个Unix命令行工具以外grepawk和朋友们,可以从任何文本文件解析的数据。所有这些工具都假设数据是文本格式。

PDF 或 Word 文档等文件以二进制格式对文本数据进行编码,因此在没有其他工具的帮助下无法对其进行解析。这些工具通常是一种技巧,通常只能处理这些二进制文件格式中的一种或几种。

您可以使用该file命令来识别文件类型。

例子

$ file /usr/share/cups/data/default.pdf
/usr/share/cups/data/default.pdf: PDF document, version 1.5
Run Code Online (Sandbox Code Playgroud)

有关man file其用法的更多信息,请参见。

Lucene、Solar 和其他索引工具

您可能能够调整或找到一个包含在索引工具中的工具,例如Lucene(例如:PDFMSOffice 文档),该工具至少可以从通常处理的文件的大部分子集中解析此文本每日基础。我希望它能够为初学者处理 PDF、Word 和 Libre Office 文件格式。

其他工具

这些工具至少可以部分读取某些二进制文件,因此我将它们添加到此处只是为了让您了解它们。它们并非全部包含在内,但可能对您仍然有用。