Есть ли способ, чтобы текст передавался в голову, хвост, меньше и т. Д., Чтобы он был цветным?

Есть ли способ сохранить раскраску текста, пропущенного через трубу | в head, tail, less, так далее.?

4 ответа

Решение

Я полагаю, что вы из ls и хочу сохранить цветовые коды терминала. Ты можешь сказать ls --color=always (вместо значения по умолчанию --color=auto), который сохранит коды, но это не гарантирует, что объект, к которому вы подключаетесь, знает, как их понимать.

Если вы используете glark вместо grep он будет пытаться отображать с цветами.

Если вы используете less с -R он попытается отобразить с цветами.

Это зависит от программы, которая генерирует вывод в трубе.

head, tailи т. д. не те, кто удаляет цвета, это программа, генерирующая данные, которые обычно проверяют, идет ли вывод на консоль (цветной), в файл или канал (не цветной)

Я обнаружил еще один SU Q&A, показывающий, как лгать программам для вывода данных, как если бы они отправляли вывод на консоль (эмулируя консоль с помощью unbuffer)

Учитывать

bat

Альтернатива

cat

Установить

brew install bat

--args --флаги типа

--languageи--theme

Примеры

      head | bat --language=zsh -n -p --theme=gruvbox-dark
      file.py | bat --language=py -n -p --theme=gruvbox-dark

В Mac OS Xman lsупоминаетCLICOLOR_FORCEпеременная среды.

Добавлениеexport CLICOLOR_FORCE=1к~/.zshrcили~/.bashrc, в зависимости от используемой вами оболочки, сохраняет цвета при передачеlsдругим командам, таким какless,head, иtail.

Другие вопросы по тегам