Как сделать так, чтобы grep учитывал цвета в канале?

Как сделать так, чтобы grep учитывал цвета в канале?

В современной оболочке Linux многие команды (например ls, ) могут выводить цветной текст.

Если вы объедините его с другими командами, вы потеряете цвет. Например:

$ ls path
[... folders in blue, executables in green,..etc ]

$ ls path | grep foo
[... all in black and white]

Как мне сделать так, чтобы grepвторая часть трубы учитывала lsцвета (или любую другую выполненную команду)?

решение1

Вы можете сказать, lsчто всегда нужно раскрашивать вывод, так как при записи в канал --color=autoцвет не добавляется.

Если вы ls --color=always path | grep --color=never fooэто сделаете, то это заставит lsдобавить цвет и не позволит grepзаменить его собственными цветами.

решение2

Обе команды имеют --color=alwaysаргумент.

$ ls --color=always | grep e

Связанный контент