web-dev-qa-db-ja.com

grepの色の変更

何かをgrepすると、結果は常に赤になります。コマンドgrep --colorは結果をカラーで印刷することを知っています。デフォルトでは赤です。色を変更できますか?

22
Codito ergo sum

次のように設定できる環境変数GREP_COLORSを使用して、grepの強調表示色を変更できます。

export GREP_COLORS='ms=01;31'

数値オプション

数字は、テキストのスタイル設定、前景色または背景色の変更、フォントの変更ができます。

すべてのGREP_COLORSオプションの開始条件は、端末のデフォルトのテキストスタイル、フォント、および色です。これらのいずれかをリセットすると、grepのデフォルトではなく、ターミナルのデフォルトに戻ります。

伝説

  • ;ʙ;;は、組み合わせたい数値オプションを区切ります(たとえば、太字の黒地に黄色のテキストは、オプション133、および40を組み合わせます1;33;40
  • +ᴇꜰꜰᴇᴄᴛ —その数値オプションを使用すると、ᴇꜰꜰᴇᴄᴛがオンになります
  • -ᴇꜰꜰᴇᴄᴛ —その数値オプションを使用すると、ᴇꜰꜰᴇᴄᴛがオフになります
  • colorgreencyan、およびgrey —「テキストスタイリング」セクションでは、これらは前景色を参照します
  • colors —「テキストスタイル」セクションでは、これは前景色と背景色の両方を指します
  • this color —「前景色」セクションでは、これは前景色を指します。 「背景色」セクションでは、これは背景色を指します

テキストスタイリング

空の文字列または0はすべてのテキストスタイルをリセットし、両方の色をデフォルトにリセットしますが、はフォントをデフォルトにリセットしません

┏━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━┓
┃ ### ┃ GNOME Terminal          ┃ xterm                   ┃ non-GUI TTY           ┃
┡━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━┩
│     │ «reset style+colors»    │ «reset style+colors»    │ «reset style+colors»  │
│   0 │ «reset style+colors»    │ «reset style+colors»    │ «reset style+colors»  │
├─────┼─────────────────────────┼─────────────────────────┼───────────────────────┤
│   1 │ +bold, +brighter color  │ +bold, +brighter color  │ +brighter color,      │
│     │                         │                         │   -forced grey        │
│   2 │ +fainter color          │ +fainter color          │ +forced grey          │
│   3 │ +italic                 │ +italic                 │ +forced green         │
│     │                         │                         │   ● overrides 2 and 4 │
│   4 │ +underline              │ +underline              │ +forced cyan          │
│     │                         │                         │   ● overrides 2       │
│   5 │ «no effect»             │ +blink                  │ «no effect»           │
│   7 │ +invert colors          │ +invert colors          │ +invert colors        │
│   8 │ +invisible              │ +invisible              │ «no effect»           │
│     │                         │   ● underline appears   │                       │
│   9 │ +strikethrough          │ +strikethrough          │ «no effect»           │
├─────┼─────────────────────────┤                         ├───────────────────────┤
│  21 │ -bold, -brighter color, │ +double underline       │ -brighter color,      │
│     │   -fainter color        ├─────────────────────────┤   -forced grey        │
│  22 │ -bold, -brighter color, │ -bold, -brighter color, │ -brighter color,      │
│     │   -fainter color        │   -fainter color        │   -forced grey        │
│  23 │ -italic                 │ -italic                 │ -forced green         │
│  24 │ -underline              │ -underline,             │ -forced cyan          │
│     │                         │   -double underline     │                       │
│  25 │ «no effect»             │ -blink                  │ «no effect»           │
│  27 │ -invert colors          │ -invert colors          │ -invert colors        │
│  28 │ -invisible              │ -invisible              │ «no effect»           │
│  29 │ -strikethrough          │ -strikethrough          │ «no effect»           │
└─────┴─────────────────────────┴─────────────────────────┴───────────────────────┘

前景色

┏━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━┓
┃ ### ┃ GNOME Terminal          ┃ xterm                   ┃ non-GUI TTY           ┃
┡━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━┩
│  39 │ «reset this color»      │ «reset this color»      │ «reset this color»    │
├─────┼─────────────────────────┼─────────────────────────┼───────────────────────┤
│  30 │ very dark grey          │ black                   │ black                 │
│  31 │ dull red                │ red                     │ light red             │
│  32 │ dull green              │ light green             │ light green           │
│  33 │ dull yellow             │ yellow                  │ yellow                │
│  34 │ greyish blue            │ dark blue               │ sky blue              │
│  35 │ dull purple             │ purple                  │ purple                │
│  36 │ teal                    │ cyan                    │ cyan                  │
│  37 │ light grey              │ light grey              │ light grey            │
├─────┼─────────────────────────┼─────────────────────────┼───────────────────────┤
│  90 │ dark grey               │ dull grey               │ dull grey             │
│  91 │ red                     │ bright red              │ bright red            │
│  92 │ Lime green              │ bright green            │ bright green          │
│  93 │ yellow                  │ bright yellow           │ pure yellow           │
│  94 │ light greyish blue      │ dull blue               │ deep blue             │
│  95 │ light purple            │ Magenta                 │ Magenta               │
│  96 │ cyan                    │ bright cyan             │ bright cyan           │
│  97 │ off white               │ white                   │ white                 │
├─────┴──────┬──────────────────┴─────────────────────────┴───────────────────────┤
│ 38;2;ʀ;ɢ;ʙ │ replace ʀ, ɢ, and ʙ with RGB values from 0 to 255                  │
│            │   for closest supported color (non-GUI TTY has only 16 colors!)    │
│ 38;5;ɴ     │ replace ɴ with value from 256-color chart below                    │
│            │   for closest supported color (non-GUI TTY has only 16 colors!)    │
└────────────┴────────────────────────────────────────────────────────────────────┘

背景色

非GUI TTYは、より明るい背景色シリーズを提供しないことに注意してください。

┏━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━┓
┃ ### ┃ GNOME Terminal          ┃ xterm                   ┃ non-GUI TTY           ┃
┡━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━┩
│  49 │ «reset this color»      │ «reset this color»      │ «reset this color»    │
├─────┼─────────────────────────┼─────────────────────────┼───────────────────────┤
│  40 │ very dark grey          │ black                   │ black                 │
│  41 │ dull red                │ red                     │ light red             │
│  42 │ dull green              │ light green             │ light green           │
│  43 │ dull yellow             │ yellow                  │ yellow                │
│  44 │ greyish blue            │ dark blue               │ sky blue              │
│  45 │ dull purple             │ purple                  │ purple                │
│  46 │ teal                    │ cyan                    │ cyan                  │
│  47 │ light grey              │ light grey              │ light grey            │
├─────┼─────────────────────────┼─────────────────────────┼╶╴╶╴╶╴╶╴╶╴╶╴╶╴╶╴╶╴╶╴╶╴╶┤
│ 100 │ dark grey               │ dull grey               │ black                 │
│ 101 │ red                     │ bright red              │ light red             │
│ 102 │ Lime green              │ bright green            │ light green           │
│ 103 │ yellow                  │ bright yellow           │ yellow                │
│ 104 │ light greyish blue      │ dull blue               │ sky blue              │
│ 105 │ light purple            │ Magenta                 │ purple                │
│ 106 │ cyan                    │ bright cyan             │ cyan                  │
│ 107 │ off white               │ white                   │ light grey            │
├─────┴──────┬──────────────────┴─────────────────────────┴───────────────────────┤
│ 48;2;ʀ;ɢ;ʙ │ replace ʀ, ɢ, and ʙ with RGB values from 0 to 255                  │
│            │   for closest supported color (non-GUI TTY has only 8 colors!)     │
│ 48;5;ɴ     │ replace ɴ with value from 256-color chart below                    │
│            │   for closest supported color (non-GUI TTY has only 8 colors!)     │
└────────────┴────────────────────────────────────────────────────────────────────┘

256色チャート

256-color chart

上記のチャートは、 ウィキペディアの「ANSIエスケープコード、8ビットカラー」 で公開されたコンテンツのスクリーンショットです。 2016年2月24日以降のCMG Lee氏による著者によってライセンスされているCC BY-SA 3.0著作権ライセンスGFDL著作権ライセンス の両方の下。

上記の256色チャートの色は、次のように使用できます。

  • 38;5;ɴ —ɴを上のグラフの特定の色の値に置き換えて、前景色を端末がサポートする最も近い色に変更します
  • 48;5;ɴ —ɴを上記のチャートの特定の色の値に置き換えて、背景色を端末がサポートする最も近い色に変更します

たとえば、38;5;214;48;5;30は、フォアグラウンドの色を214に設定し、バックグラウンドの色を30に設定し、それをサポートする端末でオレンジ色が点灯します。

すべての端末が256色すべてをサポートしているわけではないことに注意してください。したがって、選択した色が使用されない可能性があることを認識することが重要です。選択した色に最も近いサポートされている色のみが使用されます。

たとえば、非GUI TTYは前景の基本16色と背景の基本8色のみをサポートしているため、最終的に使用される最も近い色は期待したものとは異なる場合があります。例として、上のオレンジ色の選択(38;5;214;48;5;30)は、GUI以外のTTYでサポートされている最も近い色であるため、非GUI TTYでは黒に黄色として表示されます。

フォント

10はデフォルトのフォントです。 11から20は潜在的な代替フォントです(20は通常 a ?????????????????????? ?????? font それをサポートするまれな端末では)。非GUI TTYにはデフォルトで1012のみが存在するようで、GNOMEターミナルまたはxtermには存在しません。

grepは終了する前に適切にフォントを切り替えないため、resetがシェルに戻った後に不要なフォントで動けなくなる場合は、grepを実行してください。

┏━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━┓
┃ ### ┃ GNOME Terminal          ┃ xterm                   ┃ non-GUI TTY           ┃
┡━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━┩
│  10 │ «no effect»             │ «no effect»             │ «reset font»          │
│  11 │ «no effect»             │ «no effect»             │ -messed up font       │
│  12 │ «no effect»             │ «no effect»             │ +messed up font       │
└─────┴─────────────────────────┴─────────────────────────┴───────────────────────┘

「数値オプション」セクションのソース:
 「ANSIエスケープコード、WikipediaのSGR(Select Graphic Rendition)パラメーター」
 ●GNOMEターミナル、xterm、およびUbuntu 16.04上の非GUIモードTTYでの実験的検証


examples of color changes after setting <code>GREP_COLORS</code>

GREP_COLORSのデフォルト値は'ms=01;31:mc=01;31:sl=:cx=:fn=35:ln=32:bn=32:se=36'です

GREP_COLORSで受け入れられるすべての要素の意味は、 GNU.orgのマニュアルページ で確認できます。

完了のため、および@damadamが指摘したように、変更を保存するために、export.bashrcに追加する必要があります。

関連:

マルチカラーGrep

grepごとに異なる色を使用

18
M. Becerra

@Mからの回答に加えて。 Becerra、このexport~/.bashrc内に追加することを忘れないでください。次のようにできます:

nano ~/.bashrc

exportを入力してください:

export GREP_COLORS='ms=01;33:mc=01;31:sl=:cx=:fn=35:ln=32:bn=32:se=36'

これにより、grepの結果が黄色に設定され、ターミナルまたはコンピューターの再起動後にexportをやり直す必要がなくなります。

5
damadam