Меньше и Grep: Получение цветных результатов при использовании трубы от grep до менее

Я использую параметр -colour grep много, но я часто использую меньше. Как я могу тратить результаты grep на меньшее и по-прежнему сохранять окраску. (Или это возможно?)

  grep "search-string" -R * --colour | Меньше
 

ИЗМЕНИТЬ :

Я ищу прямое решение или что-то подобное этому.

211 голосов | спросил Jeremy Powell 5 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowSat, 05 Sep 2009 01:46:30 +0400 2009, 01:46:30

5 ответов


243

Когда вы просто запускаете grep --color , он подразумевает grep --color = auto , который определяет, является ли вывод терминалом, и если да, то разрешает цвета. Однако, когда он обнаруживает трубку, она отключает окраску. Следующая команда:

  grep --color = always -R "строка поиска" * | Меньше
 

Всегда будет включать раскраску и отменять автоматическое обнаружение, и вы получите подсветку цвета в less .

EDIT: Хотя для меня работает только less , возможно, для более старой версии требуется флаг -R для обработки цветов, как это предлагается.

ответил drrlvn 5 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowSat, 05 Sep 2009 02:35:51 +0400 2009, 02:35:51
27

Вы можете поместить это в свой .bashrc файл:

  export GREP_OPTIONS = "- color = always"
 

или создайте псевдоним следующим образом:

  alias grepc = "grep --color = always"
 

, и вам нужно будет использовать параметр -R для less , как указано в нем

ответил Dennis Williamson 5 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowSat, 05 Sep 2009 14:46:27 +0400 2009, 14:46:27
4

В этом случае я предпочитаю создавать небольшие файлы sh и помещать их в /usr /local /bin .
Обычно я использую grep рекурсивным способом в pwd , так что мой личный скрипт:

  #! /Bin /ш
grep --color = always -r "$ @". | меньше -R
 

И затем я только что скопировал его как /usr /local /bin /g (да, я использую его много)

ответил Iazel 1 +04002013-10-01T01:48:59+04:00312013bEurope/MoscowTue, 01 Oct 2013 01:48:59 +0400 2013, 01:48:59
0

Не псевдоним «grep», лучше псевдоним «меньше», который никогда не используется оболочками. В .bashrc просто введите: alias less = "less -r" .

ответил not2qubit 20 Jpm1000000pmSun, 20 Jan 2013 14:28:40 +040013 2013, 14:28:40
0

Мне нужно запустить

  grep --color = always -R "строка поиска" * | меньше - r
 

с флагом -r после меньше , чтобы это выполнялось.

ответил Pierre François 18 Jpm1000000pmThu, 18 Jan 2018 13:51:33 +030018 2018, 13:51:33

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132