Если я правильно понял, вы хотите сохранить вывод терминала в текстовом файле, верно? Но вы хотите, чтобы он был отформатирован с цветами. Если это так, вот мои идеи:
Подсветка вывода автоматически
Как вы, вероятно, знаете, если вы записываете вывод grep в текстовый файл, именно потому, что это текстовый файл, его невозможно отформатировать. Итак, насколько я знаю, вы не можете сделать это простым способом.
Несмотря на это, существует простой обходной путь, заключающийся в том, чтобы заставить ваш текстовый редактор понять, какой тип файла открывается. Например, предположим, что ваш вывод grep имеет некоторые компоненты bash, поэтому подсветка bash работает для вас (кстати, это часто те цвета, которые вы видите в цветном выводе в терминале). Таким образом, хитрость заключается в том, чтобы сохранить вывод текста в файл с соответствующим расширением. Вместо того, чтобы делать что-то вроде:
ls | grep something > output
вы можете пойти на
ls | grep something > output.sh
Что заставит gedit (или любой приличный текстовый редактор) автоматически распознать, что вы говорите о bash-коде, и выделит его соответствующим образом. Вам не нужно окрашивать вывод, программа сделает это за вас, если распознает тип открываемого кода. Если вы работаете с другими типами форматов, просто лучше адаптируйте расширение к тому, что вы настраиваете для того, что вы делаете (например,> output.xml,> output.html,> output.py ... и т. Д.). Удачи! :)
Выделение некоторых слов в выходном файле
Итак, если я понял, вы хотите выделить слова, которые вы искали. Опять же, это не может быть сделано в текстовом файле только потому, что это простой текст. Однако вы можете добавить какой-либо формат к нему очень простым способом, например с использованием некоторого HTML-кодирования. Это преобразует ваш вывод в html-код, и когда вы откроете его с помощью программы, способной интерпретировать html (libreoffice writer, firefox и 10000 и т. Д.), Вы увидите выделенные слова.
Для этого допустим, что это ваш grep, экспортированный в html:
ls | grep keytext > output.html
И теперь вы хотите выделить ключевой текст в вашем выводе. Вы можете использовать sed, чтобы сделать это, например:
sed -i 's/keytext/<font color="red">keytext<\/font>/g' output.html
И вот, теперь ваш ключевой текст выделен красным.