GNU/Linux >> Tutoriels Linux >  >> Linux

Pourquoi clang génère-t-il du texte inintelligible lorsqu'il est redirigé ?

Cela n'a rien à voir avec les pages de code/encodage. Votre sortie n'est pas en texte brut. Il contient les séquences comme [0;1;32m . Ces chaînes (il y a un caractère, non affiché, [escape] ainsi avant chacune d'entre elles) sont des instructions au terminal pour afficher le texte en gras, en italique, en différentes couleurs, etc. Il en résulte une sortie plus facile à lire, si votre terminal le prend en charge.

Il devrait y avoir une option pour indiquer à clang de ne pas essayer d'embellir la sortie, mais d'utiliser du texte brut à la place. Vérifiez le manuel. (Je n'en ai pas sous la main, donc je ne peux pas vous dire quelle serait la bonne commande.)


Alternativement, au lieu de supprimer les couleurs de la sortie, vous pouvez afficher la sortie colorée dans votre terminal en utilisant l'option brute de less

less -r output.txt

Ces caractères, tels que [0;33m ressemble à un contrôle de sortie terminal pour moi. Ils font partie d'un ensemble de séquences d'échappement fréquemment utilisées pour appliquer des couleurs au texte dans le terminal. Dans son état brut comme celui-ci, il est également souvent utilisé pour appliquer une couleur à l'invite bash elle-même - Voici ce que j'ai utilisé dans .bashrc depuis des années sur toutes mes machines :

export PS1='\[\033[1;33m\]\u\[\033[1;35m\]@\[\033[1;32m\]\h\[\033[0;36m\]\w\[\033[1;37m\]\$ \[\033[0;37m\]'

(La plupart pensent que c'est moche, mais j'aime ça).

Voyez si vous êtes en mesure de trouver un commutateur pour supprimer tout code couleur ou similaire de la sortie de vos commandes et voyez si cela vous aide.


Linux
  1. Pourquoi OpenStack signale-t-il le type d'hyperviseur comme QEMU alors que libvirt_type est KVM ?

  2. Pourquoi la substitution de commande Shell engloutit-elle un caractère de fin de ligne ?

  3. Comment un programme décide-t-il d'avoir ou non une sortie colorée ?

  4. Ssh – Comment Ssh demande-t-il un mot de passe lorsque toutes les entrées et sorties sont redirigées ?

  5. “queue -f | Iconv -fsjis" ne produit rien ?

Rechercher du texte sur la sortie du terminal ?

Bash Scripting :comment générer et formater du texte sur le shell Linux

Pourquoi Linux affiche toujours ^C en appuyant sur Ctrl+C ?

Quand un signal est-il traité et pourquoi certaines informations se bloquent-elles ?

Pourquoi `cat /dev/urandom` casse-t-il votre terminal ?

iftop - comment générer un fichier texte avec sa sortie ?