Сохраните окраску после передачи по каналу grep к grep

Существует simlar вопрос в Заповеднике ls окрашивающий после grep’ing, но меня что при передаче по каналу окрашенного вывода grep в другой grep раздражает, что окраска не сохраняется.

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

133
задан Community 23 May 2017 в 11:54
поделиться

1 ответ

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

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

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

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

alias cgrep="grep --color=always"

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

154
ответ дан 24 November 2019 в 00:02
поделиться
Другие вопросы по тегам:

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