Сохранить окраску после обвязки grep в grep

В есть такой же вопрос, как сохранить цвет ls после grep'ing . меня раздражает, что если вы передаете цветной вывод grep в другой grep, то цвет не сохраняется.

В качестве примера grep --color WORD * | grep -v AVOID не сохраняет цвет первого вывода. Но для меня ls | grep FILE сохранить цвет, почему разница?

120 голосов | спросил Zitrax 24 FebruaryEurope/MoscowbWed, 24 Feb 2010 18:36:33 +0300000000pmWed, 24 Feb 2010 18:36:33 +030010 2010, 18:36:33

3 ответа


0

grep иногда отключает вывод цвета, например, при записи в канал. Вы можете переопределить это поведение с помощью grep --color=always

Правильная командная строка будет

grep --color=always WORD * | grep -v AVOID

Это довольно многословно, в качестве альтернативы вы можете просто добавить строку

alias cgrep="grep --color=always"

к вашему .bashrc например и используйте cgrep как цветной grep. При переопределении grep у вас могут возникнуть проблемы со сценариями, которые зависят от конкретного вывода grep и не люблю escape-код ascii.

ответил Otto Allmendinger 24 FebruaryEurope/MoscowbWed, 24 Feb 2010 18:38:49 +0300000000pmWed, 24 Feb 2010 18:38:49 +030010 2010, 18:38:49
0

Советы:

При использовании grep --color=always фактические строки, передаваемые в следующий канал, будут изменены. Это может привести к следующей ситуации:

$ grep --color=always -e '1' * | grep -ve '12'
11
12
13

Даже если параметр -ve '12' должен исключать среднюю строку, это не произойдет, поскольку между 1 и 2.

ответил andersonvom 4 +04002011-10-04T00:04:23+04:00312011bEurope/MoscowTue, 04 Oct 2011 00:04:23 +0400 2011, 00:04:23
0

, хотя и немного взломанный, он также просто повторяет команду grep в конце канала.
grep WORD * | grep -v AVOID | grep WORD

ответил Alex 29 MarpmTue, 29 Mar 2016 18:35:47 +03002016-03-29T18:35:47+03:0006 2016, 18:35:47

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

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

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