Est - il possible de garder la colorisation du texte passé par le tuyau |
à head
, tail
, less
, etc.?
linux
pipe
gnome-terminal
Timofey Gorshkov
la source
la source
head
,tail
, Etc ne sont pas ceux enlever les couleurs, il est le programme de génération des données qui vérifient généralement si la sortie va à la console (couleur), un fichier ou un tube (non coloré).Réponses:
Je suppose que vous utilisez
ls
et souhaitez conserver les codes de couleur du terminal. Vous pouvez direls --color=always
(au lieu de la valeur par défaut de--color=auto
), qui préservera les codes, mais cela ne garantira pas que la chose que vous canalisez sache comment les comprendre.Si vous utilisez à la
glark
place,grep
il essaiera de s'afficher avec des couleurs.Si vous utilisez
less
avec-R
elle tentera d'afficher des couleurs.la source
git
. J'ai trouvé qu'il a une configuration similaire (par exemplegit config color.diff always
) qui conserve la colorisation.git diff
sortie comme entrée car elle générera toujours les codes d'échappement ANSI.grep "string" file.txt | head
pour m'assurer que le résultat de grep était coloré, je viens de le changer engrep "string" file.txt --color=always | head
Cela dépend du programme qui génère la sortie dans le tuyau.
head
,tail
, Etc ne sont pas ceux enlever les couleurs, il est le programme de génération des données qui vérifient généralement si la sortie va à la console (couleur), un fichier ou un tuyau (non coloré)J'ai trouvé un autre SU Q&A montrant comment mentir aux programmes de tuyauterie pour sortir comme s'ils envoyaient une sortie à une console (en émulant une console avec
unbuffer
)la source
color=auto
mode (pour que le programme pense que la sortie va à la console au lieu du canal)?head
,tail
etc., détecte-t-il qu'il est redirigé vers un autre programme (afin qu'il puisse générer des données sans couleurs, etc.).