Получить «текстовое содержимое» файлов

Мне было интересно, есть ли инструмент для очистки текстового содержимого файла. В принципе, я хотел бы добавить pdf-документ, сжатый файл или что-то еще и получить текст, который он содержит.

Существуют strings которые печатают последовательности печатных символов, но это не работает во многих сжатых форматах. Его «тупой» характер также означает, что он часто печатает больше, чем просто текст. Тем не менее, это было бы неплохим вариантом для неизвестного типа файла.

Существует команда pdftotext которая делает практически то, что я хочу, но она работает только с pdf.

Есть ли инструмент, который работает в нескольких форматах или который связывает больше этих инструментов вместе?

Дополнительная информация

Многие люди упоминают, что их инструменты нестандартны. Я хотел бы отметить, что все в порядке.

2 Solutions collect form web for “Получить «текстовое содержимое» файлов”

Помимо strings я никогда не видел инструмент командной строки Unix за пределами grep , awk и друзей, которые могут анализировать данные из любого текстового файла. Все эти инструменты предполагают, что данные находятся в текстовом формате.

Такие файлы, как PDF или документы Word, кодируют текстовые данные в двоичном формате, что делает его недоступным без помощи других инструментов для его анализа. Эти инструменты, как правило, представляют собой один из трюков, которые часто могут иметь дело с одним или несколькими из этих двоичных форматов файлов.

Вы можете использовать команду file для идентификации типа файла.

пример

 $ file /usr/share/cups/data/default.pdf /usr/share/cups/data/default.pdf: PDF document, version 1.5 

Подробнее см. man file .

Lucene, Solar и другие инструменты индексирования

Возможно, вы сможете адаптировать или найти инструмент, который включен в инструмент индексирования, такой как Lucene (например, документы PDF и MSOffice ), которые могут анализировать этот текст из, по крайней мере, большого подмножества файлов, на которые обычно приходится иметь дело на ежедневно. Я ожидаю, что он сможет конкурировать с форматами файлов PDF, Word и Libre Office для начинающих.

Другие инструменты

Эти инструменты могут, по крайней мере, частично читать определенные двоичные файлы, поэтому я добавляю их здесь, чтобы вы знали о них. Они не все охватывают, но могут быть полезны для вас, тем не менее.

  • catdoc
  • Швейцарский файловый нож – коллекция инструментов командной строки

Такой инструмент преобразования не существует (по крайней мере, не стандартный), но вы можете найти хорошие генераторы предварительного просмотра или инструменты, которые связывают существующие вместе (см. Ниже). Существует много форматов документов, и все эти форматы определяются приложениями, которые работают с ними (случайные примеры: PDF-файлы, документы Word, таблицы ODS, презентации PowerPoint, документы HTML [где некоторые строки не являются частью контента] , JPG-изображения текста, скомпилированные программы, файлы базы данных, файлы с zip-файлами, gzipped-файлы, файлы с расширением bzipped, список можно продолжать и продолжать). Было бы практически невозможно создать программу, которая могла бы читать каждый существующий формат данных документа, декодировать данные и вытаскивать фактический контент.

Типичная стратегия, которую использует генератор поискового индексатора / предварительного просмотра, состоит в том, чтобы угадать тип файла, вызвать какой-то фильтр, чем захватить соответствующий текст, и обработать / просмотреть его. Обычно это делается автором либо для написания небольшого набора фильтров для общих типов самостоятельно (проводя исследование, чтобы узнать о спецификациях формата), либо приложением, предоставляющим некоторый тип расширяемой рамки в стиле плагина и оставляя его третьим сторонам писать фильтры. Много раз это комбинация обоих.

Например, Nautilus использует комбинацию этих подходов. Для некоторых форматов, таких как общие форматы изображений, он может генерировать предварительные просмотры самостоятельно. Для других форматов он использует сторонние скрипты, созданные авторами приложений и заданные Nautilus в gconf, которые определяют различные форматы документов, для анализа документов и создания эскизов. Он просто делегирует задачу генерации превью на эти сценарии, которые затем сохраняются в виде файлов изображений и отображаются Nautilus.

Любой поисковый индексатор, который вы найдете, будет работать по аналогичному принципу.

Вы можете изучить несколько других вариантов, в том числе, но не ограничиваясь:

  • Использование существующего поискового программного обеспечения. Вот хороший список и обзор доступных для Linux опций: http://www.tuxradar.com/content/best-linux-desktop-search-tools (если у вас есть ADD: их верхняя 3 в порядке: Recoll, Beagle, Google Desktop).
  • Если вы пишете свои собственные, подумайте над тем, как писать уже написанные фильтры.
  • Подумайте о типах документов, которые вы действительно хотите поддержать и напишите сценарий, который использует комбинацию file и любых инструментов фильтра (например, pdftotext ).
  • Установите для ограниченного несжатого исходного текста и используйте strings .
  • Замените переменную, прочитанную из текстового файла (чтобы их можно было интерпретировать)
  • Сценарий оболочки для поиска файлов для идентичных текстовых записей
  • отображать имя файла, за которым следует контент без взаимодействия
  • textutil конвертировать PDF в txt, производя искаженный вывод
  • Сценарий для удаления пробелов и строчных букв в именах файлов
  • замените блок текста содержимым файла
  • Как добавить текст с возможностью поиска к изображению?
  • Как извлечь «foo» из «foo-bar-baz» в bash?
  • cat файлы каталогов, которые перенесли имя файла в строку текста и удалили строку заголовка?
  • Сделать curl / cat не прокручивать вниз, если вам нужен длинный текст?
  • md5sum команда двоичный и текстовый режим
  • Linux и Unix - лучшая ОС в мире.