Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Perl中过滤标准输出_Perl_Shell_Stdout - Fatal编程技术网

在Perl中过滤标准输出

在Perl中过滤标准输出,perl,shell,stdout,Perl,Shell,Stdout,我这样做是为了记录脚本中发送到STDOUT的每条消息 open(STDOUT," | tee $log") or die "Unable to open $log"; 是否可以轻松筛选发送到日志的所有消息?说替换一个字符?不是你的方式,因为你所做的是将所有内容发送到tee,然后tee打印它所记录的内容 您也许可以创建一个内置了sed的管道。但另一种方法可能是编写自己的“log_line”子文件,该子文件将显式打印到日志文件和标准输出 sub print2 { print {$outpu

我这样做是为了记录脚本中发送到STDOUT的每条消息

open(STDOUT," | tee $log") or die "Unable to open $log";

是否可以轻松筛选发送到日志的所有消息?说替换一个字符?

不是你的方式,因为你所做的是将所有内容发送到
tee
,然后
tee
打印它所记录的内容

您也许可以创建一个内置了
sed
的管道。但另一种方法可能是编写自己的“log_line”子文件,该子文件将显式打印到日志文件和标准输出

sub print2 {
    print {$output_fh} @_;
    print @_; 
}
您可以构建自己的转换

您还可以使用几个模块,例如
IO::Tee
log4perl
。如果您想让不同的东西进入
STDOUT
和您的日志,那么可能值得一看,做一个功能更全面的日志记录

open(STDOUT,“| perl-pe的/../…/”| tee$log”)