He escrito un programa del Perl para imprimir el resultado a la salida estándar (STDOUT), él soy hallazgo al funcionar solamente, pero cuando instalo tubos la salida de este programa del Perl a otro programa en Perl myprogram.pl del nivel del OS “ | el ABC del grep” algo similar, el resultado del programa del Perl parece conseguir a través a ambos STDOUT así como al mi programa del Perl de PIPE.
Actually es tan simple como abajo: ¡- ! #/usr/bin/perl
lineNo = 0; $fileName = $ARGV [0];
open (MYINPUTFILE,” - “); del while () {el # buena práctica de almacenar el because # las operaciones subsecuentes puede cambiar it. mi ($line) = $_;
# buena práctica de pelar siempre el trailing # newline del chomp de line. ($line);
$lineNo++;log_name del sequence # del campo del
##, línea, $1 client_address, $2 rfc1413, user_name $3, local_time $4, método $5, URL $6, protocolo $7, status_code $8, $9 bytes_sent, referrer $10, agente $11, $12 canon_name
si (/^ ([^] +) ([^] +) ([^] +) \ [([^] + [^ \]] +) \] \” ([^] +) (. +) \/[(\ w+ ^ \ “] +) \” ([^] +) ([^] +) \ “(. *) \” \ “(. *) \” \ “(. ¿*) \” *$/) { $bytes_sent = ($9== " - “)? 0: $9; impresión $fileName,” \ t " del , $lineNo, “\ t$1 \ t$2 \ t$3 \ t$4 \ t$5 \ t$6 \ t$7 \ t$8 \ t”, $bytes_sent,” \ t$10 \ t$11 \ t$12 \ n "; } { si (/^ ([^] +) ([^] +) ([^] +) \ [([^] + [^ \]] +) \] \ “([^] +) (. +) \” ([^] +) ([^] +) \ “(. *) \” \ “(. *) \” \ “(. ¿*) \” *$/) { $bytes_sent = ($8== " - “)? 0: $9; impresión $fileName,” \ t " del , $lineNo, “\ t$1 \ t$2 \ t$3 \ t$4 \ t$5 \ t$6 \ t \ t$7 \ t”, $bytes_sent,” \ t$9 \ t$10 \ t$11 \ n "; } {impresión STDERR del “\ fósforo del tline $lineNo no: $line”; ¿el
Which del del del }}} leyó adentro el registro combinado apache de STDIN y lengüeta delimito la salida a STDOUT e imprimo nuestras líneas contengo errores a STDERR.
What puedo para suprimo la salida a STDOUT cuando instalo tubos la salida a otro programa sobre nivel del OS? el
BTW, el error también no hace parece conseguir a STDERR cuando Perl myprogram.pl de I “ | el ABC 2> abc.err del grep”, todo el error también va a STDOUT en vez de STDERR y el abc.err es así empty.
class= del
|