На самом деле это единственный раздел про unix на этом форуме
Модераторы: /dev/random , Модераторы разделов
vipermagi
Сообщения: 83
ОС: AgiliaLinux
Сообщение
vipermagi » 10.03.2010 06:11
Можно ли grep заставить понимать цветной текст как обыкновенный? А если не grep'ом, то чем можно обработать строки цветного текста вида
Код: Выделить всё
^[[22;36mA^[[22;39m^[[22;32mI^[[22;39m^[[22;34mC^[[22;39m
будто бы это обычный текст вида
?
ps: поиск по разделу форума выдаёт ошибку.
megabaks
Сообщения: 697
ОС: Gentoo ~x86
Сообщение
megabaks » 10.03.2010 08:52
чёт не понял - это вывод чего?
у меня цветной вывод нормально грепается
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux
Сообщение
watashiwa_daredeska » 10.03.2010 08:53
Можно вырезать цветовые последовательности:
Код: Выделить всё
color_command | sed -r 's/\x1b\[[0-9;]+m//g' | grep
Luinnar
Сообщения: 246
ОС: Solaris, Debian, Ubuntu
Сообщение
Luinnar » 10.03.2010 13:23
vipermagi писал(а): ↑ 10.03.2010 06:11
Можно ли grep заставить понимать цветной текст как обыкновенный? А если не grep'ом, то чем можно обработать строки цветного текста вида
Код: Выделить всё
^[[22;36mA^[[22;39m^[[22;32mI^[[22;39m^[[22;34mC^[[22;39m
будто бы это обычный текст вида
?
ps: поиск по разделу форума выдаёт ошибку.
Может правильнее будет цветной поток изначально сделать бесцветным? От какой команды от приходит?
Если у вас для ls есть alias ls=ls --color=always, то нужно использовать ls --color=auto, тогда ls увидя, что вывод идёт не на терминал, не будет использовать цветовые тэги.
vipermagi
Сообщения: 83
ОС: AgiliaLinux
Сообщение
vipermagi » 10.03.2010 22:33
Это кусок вывода списка пакетов mpkg MOPSLinux.
sed -r 's/\x1b\[[0-9;]+m//g' работает, спасибо. Жаль греп не умеет возвращать обработанное в изначальных цветах.
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux
Сообщение
watashiwa_daredeska » 11.03.2010 21:43
vipermagi писал(а): ↑ 10.03.2010 22:33
Жаль греп не умеет возвращать обработанное в изначальных цветах.
Напишите регексп так, чтобы матчил с цветами. Регексп для цвета в команде sed уже приведен. Да, страшненько получится, а что делать... :)
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU
Сообщение
sash-kan » 07.04.2010 22:50
думаю, «работа в командной строке» — более подходящее место для этого топика.