LINUX.ORG.RU

Цветной текст вывод в фаил

 ,


0

1

Всем привет. Пардон за глупый вопрос, но хочется разобраться.. Есть Bash скрипт, который должен обработать данные и записать в текстовый файл. Часть текста должна быть цветной и жирной.

A=hello
RED='\033[1;31m'

echo -e "$RED$A\e[0m" > test2.txt

Если смотреть cat’om? то всё правильно, если открывать в текстовом редакторе(любом), то набор символов - ^[[1;31mhello^[[0m

file -i test2.txt 
test2.txt: text/plain; charset=us-ascii

Я так понимаю, что проблема с кодировкой. Как корректно вывести цветной текст в файл? Спасибо.


то всё правильно, если открывать в текстовом редакторе(любом), то набор символов - ^[[1;31mhello^[[0m

Блин, а что ты там ожидал увидеть? Цветной текст? В Plain Text редакторе будут только теги, хоть терминальные вот эти вот у тебя, хоть HTML’ные вроде <font color="red">.

Тебе нужен Rich Text или HTML какой-нибудь для цвета. Иначе никак. Можно, конечно, синтаксическую подсветку сюда присобачить как-нибудь, но это не переносимо между редакторами.

EXL ★★★★★ ()
Последнее исправление: EXL (всего исправлений: 2)

^[[1;31mhello^[[0m

Это команды для терминала, переключающие цвет.

Как тебе их текстовый редактор покажет? Он же не терминал. Он показывает символы как есть.

wandrien ()
Ответ на: комментарий от anonymous

Спасибо всем, Попробовал с html, получилось. Открывает цветной текст в браузерах и в Word. Жаль только в текстовых редакторах (Vim, Nano) не цветной.

#!/bin/bash

echo "<!DOCTYPE html>" >> test.html
echo "<html>" >> test.html

a=hello

echo "<body>" >> test.html
echo '<font color="red">************'$a'***********</font>' >> test.html

echo "</body>" >> test.html

echo "</html>" >> test.html
jay15 ()