Si j'ai bien compris, vous voulez enregistrer une sortie de terminal dans un fichier texte, n'est-ce pas? Mais vous voulez qu'il soit formaté avec des couleurs. Si tel est le cas, voici mes idées:
Mettre en surbrillance la sortie automatiquement
Comme vous le savez probablement, si vous capturez une sortie grep dans un fichier texte, il est impossible de la formater, car il s’agit d’un fichier texte. Donc, autant que je sache, vous ne pouvez pas le faire facilement.
Malgré cela, il existe une solution de contournement simple, consistant à faire réaliser à votre éditeur de texte le type de fichier en cours d’ouverture. Par exemple, supposons que votre sortie grep comporte des composants bash, donc les soulignements bash fonctionnent pour vous (d'ailleurs, ce sont les couleurs que vous voyez dans une sortie colorée dans le terminal). L'astuce consiste donc à enregistrer la sortie texte dans un fichier avec l'extension appropriée. Au lieu de faire quelque chose comme:
ls | grep something > output
vous pouvez aller chercher
ls | grep something > output.sh
Ce qui fera que gedit (ou tout éditeur de texte correct) reconnaît automatiquement que vous parlez de code bash et le surligne en conséquence. Vous n'avez pas besoin de colorer la sortie, le programme le fera pour vous s'il reconnaît le type de code qu'il ouvre. Si vous travaillez avec d'autres types de formats, adaptez simplement l'extension à cet ajustement en fonction de vos attentes (par exemple> output.xml,> output.html,> output.py ... etc). Bonne chance! :)
Mettre en surbrillance quelques mots dans le fichier de sortie
Donc, si je l'ai, vous voulez mettre en évidence les mots que vous avez recherchés. Encore une fois, cela ne peut pas être fait dans un fichier texte brut simplement parce que c'est un texte brut. Cependant, vous pouvez y ajouter un format très facilement, par exemple en utilisant du codage HTML. Cela transformera votre sortie en un code html, et lorsque vous l'ouvrirez avec un programme capable d'interpréter le html (écrivain libreoffice, firefox et 10000, etc.), vous verrez quelques mots mis en évidence.
Pour ce faire, disons qu'il s'agit de votre grep, exporté au format HTML:
ls | grep keytext > output.html
Et maintenant, vous voulez mettre en évidence le texte clé dans votre sortie. Vous pouvez utiliser sed pour le faire, comme par exemple:
sed -i 's/keytext/<font color="red">keytext<\/font>/g' output.html
Et violà, maintenant ton keytext est surligné en rouge.