【发布时间】:2014-03-03 20:16:09
【问题描述】:
我有一个 perl 脚本,它读取来自另一个进程的输出(逐行),进行一些处理并输出结果:
#!/bin/bash
set -e
set -o pipefail
RUN.SH ${@} 2>&1 | perl -M"Term::ANSIColor" -wnl -e '
m/ERROR/i and print "\e[1;91m", "$_", "\e[0m"
or print;'
而且效果很好,除非进程 RUN.SH 的输出没有以新行 (\n) 结束,而是以 \r 结束!在这种情况下,这个 Perl 解析器在下一个 \n 之前不会打印任何内容。我需要对其进行更改,使其同时使用\n 和\r 作为输入记录分隔符。
有什么想法吗?
【问题讨论】:
-
Nitpick:你
use Term::ANSIColor但你实际上并没有使用 Term::ANSIColor.
标签: perl