GNU/Linux >> Tutoriels Linux >  >> Linux

Où vont les codes d'échappement Ansi lorsque je me dirige vers un autre processus ? Puis-je les garder ?

Je veux parfois diriger la sortie codée par couleur d'un processus, par exemple. grep… mais quand je le dirige vers un autre processus, par exemple. sed, les codes couleurs sont perdus…

Est-ce un moyen de garder ces codes intacts ?

Voici un exemple qui perd la sortie colorée :

echo barney | grep barney | sed -n 1,$\ p   

Réponse acceptée :

De nombreux programmes qui génèrent une sortie colorée détectent s'ils écrivent sur un TTY et désactivent les couleurs si ce n'est pas le cas. En effet, les codes de couleur sont ennuyeux lorsque vous ne souhaitez capturer que le texte, ils essaient donc de "faire ce qu'il faut" automatiquement.

Le moyen le plus simple de capturer la sortie couleur d'un programme comme celui-ci est de lui dire d'écrire en couleur même s'il n'est pas connecté à un TTY. Vous devrez lire la documentation du programme pour savoir s'il a cette option. (par exemple, grep a le --color=always option.)

Vous pouvez également utiliser le expect script unbuffer pour créer un pseudo-tty comme celui-ci :

echo barney | unbuffer grep barney | sed -n 1,$\ p

Linux
  1. Comment afficher la sortie d'un processus en cours d'exécution dans une autre session Bash ?

  2. Que signifie la sortie de Ps ?

  3. Pourquoi puis-je voir la sortie des processus en arrière-plan ?

  4. L'ID de thread d'un processus multithread peut-il être le même que l'ID de processus d'un autre processus en cours d'exécution ?

  5. Comment puis-je maintenir un processus en vie après la fermeture de la session de mastic ?

Comment canaliser ou rediriger la sortie de curl -v ?

Comment puis-je supprimer un utilisateur sous Linux lorsque le système indique qu'il est actuellement utilisé dans un processus

Terminal prenant en charge le code d'échappement en italique ANSI ?

Trouver quel processus se trouve à l'autre bout d'un tuyau

Comment un processus peut-il apparaître comme ayant un nom différent dans la sortie ps ?

Le processus init peut-il être un script shell sous Linux ?