Обычно существует [0] 3 аргумента, которые можно использовать с опцией --color
для grep
: "auto", "always" и "none". Похоже, что ваш grep
может иметь псевдоним для использования --color always
, и в этом случае экранирующие коды ANSI, используемые для раскрашивания вывода, мешают способности ls
показать их. Когда вы используете --color=none
, вы говорите grep
не использовать их, чтобы решить вашу проблему. Опция auto
является хорошим компромиссом: она говорит об использовании цвета, когда вывод является терминалом, но не о том, если вывод является файлом или конвейером, или вообще чем-то другим, где коды ANSI не будут работать должным образом.
Тем не менее, slhck - это правильно, и вам, вероятно, не нужно обвязывать вывод grep
чем-то в этом случае, но хорошо понимать связанные с цветом проблемы на будущее.
[0] Я обычно говорю, потому что моя страница руководства говорит, что вы можете использовать "никогда", "всегда" и "авто". Возможно, "нет" и "никогда" являются синонимами.