Существует simlar вопрос в Заповеднике ls окрашивающий после grep’ing, но меня что при передаче по каналу окрашенного вывода grep в другой grep раздражает, что окраска не сохраняется.
Как пример grep --color WORD * | grep -v AVOID
не сохраняет цвет первого вывода. Но для меня ls | grep FILE
действительно сохранить цвет, почему различие?
grep
иногда отключает цветной вывод, например, при записи в конвейер. Вы можете изменить это поведение с помощью grep --color = always
Правильная командная строка будет
grep --color=always WORD * | grep -v AVOID
Это довольно многословно, в качестве альтернативы вы можете просто добавить строку
alias cgrep="grep --color=always"
в свой .bashrc
, например, и используйте cgrep
в качестве цветного grep. При переопределении grep
вы можете столкнуться с проблемами со сценариями, которые зависят от конкретного вывода grep
и не любят escape-код ascii.