Главная > Обработка текста и поиск > 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` (или соответствующего пути).


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