grepの色の変更


23

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

回答:


18

次のように設定できるgrep環境変数を使用して、のハイライトカラーを変更できGREP_COLORSます。

export GREP_COLORS='ms=01;31'

数値オプション

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

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

伝説

  • ;ʙ;- ;あなたが結合したいという数字のオプションを分離(例えば、大胆な黄色に黒のテキストコンバインオプション133および401;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色チャート

チャートの上に公開されたコンテンツのスクリーンショットであるWikipediaの「ANSIエスケープコード、8ビットの色」、執筆CMG Leeらによる。2016年2月24日以降著者によってCC BY-SA 3.0著作権ライセンスGFDL著作権ライセンスの両方でライセンスされています

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

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

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

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

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

フォント

10デフォルトのフォントです。11through 20は潜在的な代替フォントです(20通常それをサポートするまれな端末では𝕱𝖗𝖆𝖐𝖙𝖚𝖗フォントを意味します)。のみ1012GNOMEターミナルで非GUI TTYにデフォルトで存在し、どれも存在すると思われますかxterm

grep終了する前にフォントを適切に戻しませんので、シェルresetgrep戻った後に不要なフォントで立ち往生した場合に実行してください。

┏━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━┓
┃ ### ┃ 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エスケープコード、SGR(Select Graphic Rendition)パラメーター」
        ●GNOMEターミナルでの実験的検証xterm、Ubuntu 16.04での非GUIモードTTY


<code> GREP_COLORS </ code>の設定後の色の変化の例

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

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

完成のために、そして@damadamによって尖ったアウトとして、あなたが追加する必要がexportあなたに.bashrc変更を保存するために。

関連:

色とりどりのグレップ

grepごとに異なる色を使用する


2
あり非常に利用できるより多くの色と書式設定オプションは、してみてください<<<hello GREP_COLORS='ms=5;104' grep '.*'一回!コードのリストは、たとえばここにあります(セクション6)。
デザート

1
GREP_COLORSで256色テーブルの色値をどのように使用しますか?
セバスチャン・スターク

1
@SebastianStarkフォアグラウンドの場合、を使用します38;5;ɴ。ここで、ɴは色の値の1つに置き換える必要があります。背景について48;5;ɴは、同じように使用します。たとえば、38;5;214;48;5;30ティールにオレンジを与える必要があります。サポートしていない場合、端末は256色をサポートしていない可能性があります。たとえば、非GUI TTYは前景で16色、背景で8色のみをサポートし、青緑でオレンジに最も近い16および8から前景色と背景色を選択します。黒は黄色です。
チャイT.レックス

1
@ ChaiT.Rex thx、うまく動作します。しかし、答えからはあまり明らかではありません。
セバスチャンスターク

2
私にとっての問題は、テキストの「256色」セクションにちょうどカラーテーブル、それらのオプションの言及がないことをよりだったがChaiT.Rexのおかげで、@
セバスチャン・スターク

6

@Mからの回答に加えて。ベセラは、この追加することを忘れないでください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
元の回答を編集して、次回の回答を改善します。
トールビョーンラヴンアンデルセン

これはより良いですが、MacではなくLinuxでのみ動作するようです:(
Sridhar Sarnobat

それはMac用であれば(、それはここでは、オフトピックだろう@SridharSarnobat MacはMacがLinuxのではなく、Ubuntuのから実際に異なっている、と私はUbuntuのために、この手順を行う、マックの質問に頼まれなければならないさまざまな依頼
damadam

うん。ただ、悲しみを示すためだけに別の質問を投稿する価値はありません:)
Sridhar Sarnobat
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.