Изменение цвета grep

Когда я grep что-то, результат всегда находится в красном. Я знаю что команда grep --color печатает результат в цвете, который по умолчанию является красным. Я могу изменить цвет?

23
задан 3 June 2018 в 09:15

2 ответа

Можно изменить цвет подсветки grep при помощи переменной среды, GREP_COLORS, который можно установить как это:

export GREP_COLORS='ms=01;31'

Числовые опции

Числа могут разработать текст, изменить основной цвет или цвет фона, или изменить шрифты.

Стартовые условия для всех GREP_COLORS опции являются стилем текста терминала по умолчанию, шрифтом и цветами. Сброс любого из них вернется к значениям по умолчанию терминала, не любому из grepзначения по умолчанию.

Легенда

  • ;ʙ;; разделяет числовые опции, которые Вы хотите объединить (например, полужирные желтые-на-черном текстовые опции объединений 1, 33, и 40 в 1;33;40)
  • +ᴇꜰꜰᴇᴄᴛᴇꜰꜰᴇᴄᴛ включен при использовании той числовой опции
  • -ᴇꜰꜰᴇᴄᴛᴇꜰꜰᴇᴄᴛ выключен при использовании той числовой опции
  • color, green, cyan, и grey — в разделе "Text styling" они относятся к основному цвету
  • colors — в разделе "Text styling" это относится к основному цвету и к цвету фона
  • this color — в разделе "Foreground colors" это относится к основному цвету; в разделе "Background colors" это относится к цвету фона

Текстовое моделирование

Пустая строка или 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!)    │
└────────────┴────────────────────────────────────────────────────────────────────┘

Цвета фона

Обратите внимание, что TTY не-GUI не обеспечивает более яркий ряд цвета фона.

┏━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━┓
┃ ### ┃ 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-разрядные цвета" на Википедию, созданную Lee CMG и др. 24 февраля 2016 и позже, и лицензируемый авторами и под CC SA 3,0 лицензии авторского права и под лицензией авторского права GFDL.

Цвета от 256 цветовых схем выше могут использоваться следующим образом:

  • 38;5;ɴ — замените ɴ значением особого цвета в диаграмме выше для изменения основного цвета на самый близкий цвет терминальные поддержки
  • 48;5;ɴ — замените ɴ значением особого цвета в диаграмме выше для изменения цвета фона на самый близкий цвет терминальные поддержки

Например, 38;5;214;48;5;30 установит передний план для окраски 214 и предпосылки к цвету 30, предоставление оранжевого на чирке результата на терминалах, которые поддерживают его.

Обратите внимание, что не все терминалы поддерживают все 256 цветов, таким образом, важно понять, что выбранный цвет не мог бы использоваться. Только поддерживаемый цвет, самый близкий к один выбранный, будет использоваться.

Например, TTY не-GUI только поддерживает основные 16 цветов для переднего плана и основные 8 цветов для фона, таким образом, самые близкие цвета, которые заканчивают тем, что использовались, не могут быть тем, что Вы ожидаете. Как пример, оранжевый на чирке выбор выше (38;5;214;48;5;30) шоу как желтые-на-черном в TTY не-GUI, так как это - самые близкие поддерживаемые цвета.

Шрифты

10 стандартный шрифт. 11 через 20 потенциальные альтернативные шрифты (20 обычно означает шрифт в редких терминалах, которые поддерживают его). Только 10 и 12 кажется, существую по умолчанию в TTY не-GUI, и ни один не существует в Терминале 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       │
└─────┴─────────────────────────┴─────────────────────────┴───────────────────────┘

Источники раздела "Numeric options":
    "Управляющий код ANSI, SGR (Избранное Графическое Представление) параметры" на Википедию
    ● Экспериментальная проверка на Терминале GNOME, xterm, и non-GUI-mode TTY на Ubuntu 16.04


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
ответ дан 23 November 2019 в 01:29

Кроме того, ответа от @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
ответ дан 23 November 2019 в 01:29

Другие вопросы по тегам:

Похожие вопросы: