GNU/Linux >> Linux の 問題 >  >> Linux

`less` または `more` を使用してファイルを読み取る場合、コンテンツをカラーで取得するにはどうすればよいですか?

以下を試してください:

less -R

man less から :

<ブロック引用>

-r または --raw-control-chars

「生の」制御文字が表示されるようにします。 (...)

-R または --RAW-CONTROL-CHARS

-r のように ただし、ANSI の「色」エスケープ シーケンスのみが「生」形式で出力されます。 (...)


(2020年更新)

より速い方法は less -R を使用することです 参照。 https://superuser.com/a/117842/34893

pygmentize のパワーをより少ない - 自動的に利用できます! (手でパイプする必要はありません。)

pygments をインストール パッケージマネージャーまたは pip (おそらく python-pygments と呼ばれます) ) または http://pygments.org/download/ から入手してください。

ファイル ~/.lessfilter を書き込みます

#!/bin/sh
case "$1" in
    *.awk|*.groff|*.java|*.js|*.m4|*.php|*.pl|*.pm|*.pod|*.sh|\
    *.ad[asb]|*.asm|*.inc|*.[ch]|*.[ch]pp|*.[ch]xx|*.cc|*.hh|\
    *.lsp|*.l|*.pas|*.p|*.xml|*.xps|*.xsl|*.axp|*.ppd|*.pov|\
    *.diff|*.patch|*.py|*.rb|*.sql|*.ebuild|*.eclass)
        pygmentize -f 256 "$1";;

    .bashrc|.bash_aliases|.bash_environment)
        pygmentize -f 256 -l sh "$1";;

    *)
        if grep -q "#\!/bin/bash" "$1" 2> /dev/null; then
            pygmentize -f 256 -l sh "$1"
        else
            exit 1
        fi
esac

exit 0

.bashrc で 追加

export LESS='-R'
export LESSOPEN='|~/.lessfilter %s'

また、 ~/.lessfilter にする必要があります 実行することで実行可能

chmod u+x ~/.lessfilter

Debian でテスト済み。

あなたはアイデアを得る。もちろん、これをさらに改善して、より多くの拡張機能を受け入れたり、bash 以外のインタープリターのシバンを解析したりできます。それについては、他の回答を参照してください。

このアイデアは、Pygments のメーカーの古いブログ投稿から生まれましたが、元の投稿はもう存在しません。


別の投稿で答えを得ました:Less と Grep:パイプを grep から less に使用すると、色付きの結果を得る

<ブロック引用>

grep --color を実行するだけで grep --color=auto を意味します これは、出力が端子であるかどうかを検出し、そうであれば色を有効にします。ただし、パイプを検出すると、色を無効にします。次のコマンド:

grep --color=always "search string" * | less -R

常に色付けを有効にし、自動検出を無効にします。色の強調表示が少なくなります。

警告:--color=always を入れないでください エイリアスとして、時々物事を壊します。 --color=auto があるのはそのためです。 オプション。


Linux
  1. ディレクトリツリーで最も古いファイルを見つけるにはどうすればよいですか

  2. スコープ ID を持つ IPv6 アドレスを ssh 構成ファイルに追加するにはどうすればよいですか?

  3. dmesg コンテンツをファイルに記録するにはどうすればよいですか?

  1. Dconfデータベースファイルのバックアップの内容を表示する方法は?

  2. ディストリビューション間で移植可能な使用可能なメモリの量を取得するにはどうすればよいですか?

  3. 「vi」のコマンドラインから行番号が表示されたファイルを開くにはどうすればよいですか?

  1. bash スクリプトが .NET でソースされたときに、インストールされているディレクトリをどのように知ることができますか。オペレーター?

  2. Pythonで(MB)ファイルのtar.gzのサイズを取得する方法

  3. bashでファイルの絶対ディレクトリを取得するにはどうすればよいですか?