Главная > Обработка текста и поиск > lesspipe

lesspipe: препроцессор ввода для less

lesspipe — это скрипт предварительной обработки ввода, который расширяет функциональность команды less, позволяя просматривать файлы различных форматов, таких как сжатые архивы, архивы и PDF, непосредственно с помощью less. Через переменную окружения LESSOPEN less вызывает lesspipe перед открытием файла, передавая содержимое файла по конвейеру. Это позволяет пользователям немедленно просматривать содержимое без дополнительных шагов по распаковке или преобразованию файлов.

Обзор

`lesspipe` — это утилита, которая помогает `less` обрабатывать различные типы файлов, помимо обычных текстовых файлов. Когда `less` открывает файл, он выполняет скрипт `lesspipe` для преобразования содержимого файла в стандартный вывод, который затем получает и отображает `less`.

Основные функции

  • Просмотр содержимого сжатых файлов (gzip, bzip2, xz и т. д.) напрямую
  • Просмотр списка файлов и содержимого внутри архивных файлов (tar, zip, rar и т. д.)
  • Извлечение и просмотр текста из нетекстовых файлов, таких как PDF и изображения (требуются соответствующие инструменты)
  • Сохранение мощных функций поиска и навигации less

Установка и настройка

`lesspipe` поставляется как часть пакета `less` или как отдельный пакет `lesspipe` в большинстве дистрибутивов Linux. Ключевым моментом является настройка переменной окружения `LESSOPEN`, чтобы `less` использовал `lesspipe`.

Проверка установки

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

which lesspipe

Установка пакета (при необходимости)

Если lesspipe не установлен, вы можете установить его следующей командой.

Debian/Ubuntu

sudo apt update && sudo apt install less

Fedora/RHEL

sudo dnf install less

Настройка переменной окружения LESSOPEN

Чтобы активировать lesspipe, вам необходимо добавить переменную окружения LESSOPEN в ваш файл конфигурации оболочки (например, ~/.bashrc, ~/.zshrc). Точный путь к lesspipe может отличаться в зависимости от системы, поэтому проверьте его с помощью which lesspipe.

Пример настройки LESSOPEN

export LESSOPEN="|/usr/bin/lesspipe %s"
export LESS_ADVANCED_PREPROCESSOR=1
source ~/.bashrc

Типичная настройка выглядит следующим образом. Примените изменения немедленно с помощью команды `source`.

Описание переменной LESSOPEN

  • |: Означает, что вывод lesspipe будет передан в less через конвейер.
  • %s: Это заполнитель, представляющий путь к файлу, который less пытается открыть.
  • LESS_ADVANCED_PREPROCESSOR=1: Используется для включения расширенных функций предварительной обработки в некоторых версиях lesspipe.

Примеры использования

Если `lesspipe` настроен правильно, вы можете использовать команду `less` как обычно, и она автоматически будет обрабатывать различные типы файлов.

Просмотр содержимого сжатого файла gzip

less my_log.gz

Просматривайте содержимое файла `.gz` напрямую с помощью `less` без его распаковки.

Просмотр списка файлов внутри архива tar

less my_archive.tar.gz

Просматривайте список файлов внутри файла `.tar.gz` с помощью `less` без его распаковки.

Просмотр списка файлов внутри zip-архива

less my_documents.zip

Просматривайте список файлов внутри файла `.zip` с помощью `less` без его распаковки.

Просмотр текстового содержимого PDF-файла

less document.pdf

Если установлены такие инструменты, как `pdftotext`, вы можете просматривать текстовое содержимое PDF-файла с помощью `less`.

Просмотр строк в бинарном файле

less /bin/ls

Для бинарных файлов вы можете просматривать извлеченные строки с помощью команды `strings` через `less`.

Советы и замечания

Советы и соображения для эффективного использования `lesspipe`.

Пользовательский скрипт lesspipe

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

  • Копирование и изменение существующего скрипта lesspipe
  • Добавление логики обработки новых типов файлов
  • Указание пути к пользовательскому скрипту в переменной LESSOPEN

Соображения по производительности

При открытии очень больших сжатых файлов или архивов с помощью lesspipe извлечение и преобразование содержимого файла может занять некоторое время. В этом случае может возникнуть небольшая задержка перед запуском less.

Меры предосторожности

lesspipe выполняет внешние команды для обработки файлов. Поэтому, если вы используете ненадежный скрипт lesspipe или если вредоносный файл обрабатывается через lesspipe, могут возникнуть проблемы с безопасностью. Всегда используйте lesspipe из надежных источников и будьте осторожны при настройке переменной LESSOPEN.

Проверка поддерживаемых типов файлов

Просмотрев содержимое скрипта lesspipe, установленного в вашей системе, вы можете узнать, какие типы файлов он поддерживает и какие внешние инструменты использует. Обычно вы можете просмотреть содержимое скрипта с помощью команды cat /usr/bin/lesspipe (или соответствующего пути).



Те же команды в категории