ホーム > テキスト処理・検索 > lesspipe

lesspipe: lessのための入力プリプロセッサ

`lesspipe`は、`less`コマンドの機能を拡張し、圧縮ファイル、アーカイブ、PDFなど、さまざまな形式のファイルを`less`で直接表示できるようにする入力プリプロセッサスクリプトです。`LESSOPEN`環境変数を通じて、`less`がファイルを開く前に`lesspipe`を呼び出し、ファイルの内容をパイプラインで渡します。これにより、ユーザーはファイルの展開や変換といった追加の手順なしに、すぐに内容を確認できます。

概要

`lesspipe`は、`less`が通常のテキストファイル以外のさまざまなファイル形式を処理できるように支援するユーティリティです。`less`がファイルを開く際に`lesspipe`スクリプトを実行し、ファイルの内容を標準出力に変換し、その出力を`less`が受け取って表示します。

主な機能

  • 圧縮ファイル(gzip、bzip2、xzなど)の内容を直接表示
  • アーカイブファイル(tar、zip、rarなど)の内部リストと内容を表示
  • PDF、画像などの非テキストファイルのテキストを抽出し表示(関連ツールが必要)
  • `less`の強力な検索およびナビゲーション機能を維持

インストールと設定

`lesspipe`は、ほとんどのLinuxディストリビューションで`less`パッケージの一部として提供されるか、個別の`lesspipe`パッケージとして提供されます。重要なのは、`LESSOPEN`環境変数を設定して、`less`が`lesspipe`を使用するようにすることです。

インストール確認

ほとんどのシステムにはデフォルトでインストールされていますが、次のコマンドで存在を確認できます。

which lesspipe

パッケージインストール(必要な場合)

もし`lesspipe`がインストールされていない場合は、次のコマンドでインストールできます。

Debian/Ubuntu

sudo apt update && sudo apt install less

Fedora/RHEL

sudo dnf install less

LESSOPEN環境変数の設定

`lesspipe`を有効にするには、シェル設定ファイル(例: `~/.bashrc`、`~/.zshrc`)に`LESSOPEN`環境変数を追加する必要があります。`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`(または該当パス)コマンドでスクリプトの内容を表示できます。


同じカテゴリのコマンド