Un grand nombre de fois (pas toujours), la sortie standard est affichée en couleurs. Normalement, je conserve également chaque journal de sortie dans un fichier différent. Naturellement dans le fichier, les couleurs ne sont plus affichées.
J'aimerais savoir s'il existe un moyen (sous Linux) d'écrire la sortie dans un fichier avec des couleurs. J'essaie d'utiliser tee
pour écrire la sortie de vagrant dans un fichier, de cette façon je peux toujours voir la sortie (quand elle s'applique). Je veux l'utiliser spécifiquement pour vagabond (cela peut changer dans le futur, bien sûr ...)
Merci!
Étant donné que de nombreux programmes n'émettent des séquences de couleurs que si leur sortie standard est un terminal, une solution générale à ce problème nécessite de les inciter à croire que le canal dans lequel ils écrivent est un terminal. Ceci est possible avec la commande script
de bsdutils:
script -q -c "vagrant up" filename.txt
Cela écrira la sortie de vagrant up
dans filename.txt (et le terminal). Si l'écho n'est pas souhaitable,
script -q -c "vagrant up" filename > /dev/null
l'écrira uniquement dans le fichier.
Vous pouvez également colorer votre sortie avec écho avec différentes couleurs et enregistrer la sortie colorée dans un fichier. Exemple
echo -e '\E[37;44m'"Hello World" > my_file
Vous devez également connaître les codes de couleur du terminal.
Utiliser un tee
< command line > |tee -a 'my_colour_file'
Ouvrez votre fichier dans chat
cat 'my_colour_file'
L'utilisation d'un canal nommé peut également permettre de rediriger toutes les sorties du canal avec des couleurs vers un autre fichier.
par exemple
Créer un tuyau nommé
mkfifo pipe.fifo
chaque ligne de commande le redirige vers le tuyau comme suit
<command line> > pipe.fifo
Dans un autre terminal, redirigez tous les messages du tuyau vers votre fichier
cat pipe.fifo > 'my_log_file_with_colours'
ouvrez votre fichier avec chat et voyez les résultats attendus.
J'ai découvert qu'en utilisant l'outil appelé ansi2html.sh
Est le moyen le plus simple d’exporter des données de terminal colorées vers un fichier HTML,
Les commandes à utiliser sont:
ls --color=always | ansi2html.sh --palette=solarized > ~/Desktop/ls.html