В современной оболочке 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