てきとーなブログ

lessで圧縮テキストファイルを見る方法

MacUnix (Linux)

Macのlessコマンドでcompressやgzip圧縮されたテキストファイルを自動展開して閲覧できるようにするやりかた。(Macに限った話ではないですけどね…)
1. lesspipe.shファイルをどこかに作成する。

#!/bin/sh
case "$1" in
  *.Z) uncompress -c $1 2>/dev/null
    ;;
  *.gz) gzip -dc $1 2>/dev/null
    ;;
  *.bz2) bzip2 -dc $1 2>/dev/null
    ;;
esac

2. lesspipe.shに実行権限を付与。

chmod +x lesspipe.sh

3. LESSOPEN環境変数を以下のように設定。lesspipe.shのパスは環境に合わせて変更すること。

export LESSOPEN="|~/Documents/shells/lesspipe.sh %s"

以上で、less readme.txt.gz などとすれば拡張子にあわせて自動的に展開してくれるようになります。詳しいことはlessのオンラインマニュアル(man less)を参照。
ターミナル起動するたびに有効にしたいときは.bashrcにexport LESSOPEN…行を書いておけばいいのですが、Macだと多分.bashrcも.bash_profileもないでしょうからそれぞれ以下のように設定しておいてください。
~/.bashrc

export LESSOPEN="|~/Documents/shells/lesspipe.sh %s"

~/.bash_profile

if [ -f ~/.bashrc ] ; then
  . ~/.bashrc
fi