Existe-t-il un moyen de conserver le texte en tête, queue, moins, etc. à colorier?


26

Est - il possible de garder la colorisation du texte passé par le tuyau |à head, tail, less, etc.?


Un programme de sortie spécifique? Cela dépend du programme envoyant les données via le canal. 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é).
KurzedMetal

Réponses:


15

Je suppose que vous utilisez lset souhaitez conserver les codes de couleur du terminal. Vous pouvez dire ls --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 glarkplace, grepil essaiera de s'afficher avec des couleurs.

Si vous utilisez lessavec -Relle tentera d'afficher des couleurs.


6
Je passe git. J'ai trouvé qu'il a une configuration similaire (par exemple git config color.diff always) qui conserve la colorisation.
Timofey Gorshkov

1
@Errandir le problème avec cette configuration est qu'elle cassera tout script ou commande utilisant la git diffsortie comme entrée car elle générera toujours les codes d'échappement ANSI.
KurzedMetal

@Errandir, merci! Je n'ai pas de scripts qui reposent sur une sortie propre de git diff donc cela fonctionne pour moi !! Je vous remercie !
Ashutosh Jindal

J'ai utilisé ceci pour grep: grep "string" file.txt | headpour m'assurer que le résultat de grep était coloré, je viens de le changer engrep "string" file.txt --color=always | head
Emil Stenström

13

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)


Existe-t-il un moyen de garder la colorisation en color=automode (pour que le programme pense que la sortie va à la console au lieu du canal)?
Timofey Gorshkov

@KurzedMetal Comment un programme, par exemple head, tailetc., 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.).
Jorge Bucaran

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.