2014-12-11 2 views
4

Есть ли инструмент, который добавляет выделение на выход сборки android ndk (может быть на stderr).Выделите вывод ошибки NDK Android

например. Если в нем будет выделено слово «error:» в красном цвете и «Предупреждение:» оранжевым, это будет то, что я смотрю.

Но если он также даст разные цвета для кода и сообщений об ошибках, тогда это было бы замечательно!

ОТВЕТ

red=$(tput setaf 1) 
yellow=$(tput setaf 3) 
norm=$(tput sgr0) 

$ANDROID_NDK/ndk-build 2>&1 | sed -e "s/\(error:\)/${red}\1${norm}/i" | sed -e "s/\(warning:\)/${yellow}\1${norm}/i" 

ответ

4

Вы можете сделать это по конвейеру вывод команды сборки (или любой другой команды терминала), чтобы СЭД:

red=$(tput setaf 1) 
yellow=$(tput setaf 3) 
norm=$(tput sgr0) 
make | sed -e "s/\b\(error:\)\b/${red}\1${norm}/i" | sed -e "s/\b\(warning:\)\b/${yellow}\1${norm}/i" 
+0

Он не работает с '\ б ' – Max

+0

Поддержка метасимволов в sed (по-видимому) только в GNU sed, если у вас есть версия от другого провайдера, она может не поддерживать их. Я тестировал их с помощью GNU sed v4.2.2, и они работают. '\ b' - метасимвол для границы слова. Без него вы будете сопоставлять строки, содержащие «error:» и «warning:». Это может не быть большой проблемой для вас, потому что эти типы строк, вероятно, редко встречаются при построении вывода. – MuertoExcobito

+0

У меня Ubuntu 14.04 с по умолчанию 'sed'. Спасибо за помощь! – Max

Смежные вопросы