Когда я делаю svn up
, я получаю ~ 100 строк в среднем. Кроме того, есть x-teen externals, которые обновляются для ~ 30s total (они появляются один за другим каждые 2-3 секунды).Как цветной вывод оболочки во время выполнения
Я думал о окрашивании (возможно, преобразовании) этого выхода, чтобы я мог видеть его более четко.
Я знаю, что могу использовать sed
, но это требует отвратительного форматированного регулярного выражения - много экранов. perl
, с другой стороны, занимает намного более чистое регулярное выражение, но ожидает полного ввода перед печатью вывода. Я получаю 30 секунд ничего, и весь вывод BAM появляется сразу.
up.sh
#!/bin/bash
svn up [email protected] \
| grep -vE "^\s*$|revision" \
| ${arhbin}/coloring/svn.sh \
$ {arhbin} /coloring/color_definitions.sh
#!/bin/bash
source ${arhbin}/coloring/color_definitions.sh
cat \
| perl -pe 's/(^ *A.*$)/'$GREEN'\1'$NORMAL'/igs' \
| perl -pe 's/(^ *D.*$)/'$RED'\1'$NORMAL'/igs' \
| perl -pe 's/(^ *C.*$)/'$RED_BG'\1'$NORMAL'/igs' \
| perl -pe 's/(^ *[?].*$)/'$BLUE'\1'$NORMAL'/igs' \
| perl -pe 's/(^ *G.*$)/'$BLUE'\1'$NORMAL'/igs' \
Как я могу окрасить вывод команды во время выполнения с помощью Perl/Python, как регулярное выражение?
Вы в Linux? – hek2mgl
Начну с того, что ничего не забуферировано. – simbabque
@ hek2mgl да, красная шляпа, если быть точным –