当我做svn up时,平均输出了100行。此外,还有十五个外挂,更新时间为30岁左右(每2-3秒就会弹出一个接一个)。
我想给这个输出着色(也许是转换),这样我就能更清楚地看到它。
我知道我可以使用sed来做到这一点,但是它需要一个讨厌的格式化正则表达式--很多转义字符。
另一方面,perl需要更清晰的正则表达式,但它需要等待整个输入才能打印输出--我得到了30%的空值,并且BAM的整个输出同时出现。
up.sh
#!/bin/bash
svn up $@ \
| grep -vE "^\s*$|revision" \
| ${arhbin}/coloring/svn.sh \${arhbin}/着色/color_finitions.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 (如regex )对命令的输出进行着色?
发布于 2017-02-14 14:11:42
在Linux上,您可以使用stdbuf来调整io缓冲。如下所示:
stdbuf -oL svn up "$@" | perl ... https://stackoverflow.com/questions/42227694
复制相似问题