read_data: read failure for 4 bytes to client 158.136.150.108. Error = Connection reset by peer
ログファイルの行から無関係な情報を削除するにはどうすればよいですか?上記の行で
、私は後にライン内のすべてのテキストを削除するs///
演算子を使いたい「のread_data:」。
read_data: read failure for 4 bytes to client 158.136.150.108. Error = Connection reset by peer
ログファイルの行から無関係な情報を削除するにはどうすればよいですか?上記の行で
、私は後にライン内のすべてのテキストを削除するs///
演算子を使いたい「のread_data:」。
ありがとうございました! –
'/ g'はあまり意味がありません。一致する可能性のあるスポットは1つだけです。あなたの効率に関心があるなら、これは効率的ではありません。/gでは、すべての位置、期間ごとに必要です。/gがなければ、一致する行に続く前に10の異なる位置で一致するようにし、一致しない行のすべての位置で一致するようにする必要があります。私のソリューションは、両方のケースで1つの位置でのみチェックします。 – ikegami
@ikegami gを削除しました。前の正規表現から残されました。 :)。新しいラインに関しては、OPは** NO **の新しいラインがあると述べている。 "read_data:"の後に**行**のすべてのテキストを削除してください。 " – FailedDev
#!/usr/bin/env perl
use warnings; use strict;
while (my $line = <DATA>) {
my ($event) = ($line =~ /^(read_data):/);
next unless defined $event;
print "$event\n";
}
__DATA__
read_data: read failure for 4 bytes to client 158.136.150.108. Error = Connection reset by peer
私は
$str =~ s/^read_data\K:.*//;
高速かつ簡単な(キャプチャを使用していないのおかげで)使用すると思います。改行がある場合は改行も保持します。末尾の改行を削除したい場合は、代わりに以下を使用してください:
$str =~ s/^read_data\K:.*//s;
ビットとピースを尋ねてプログラム全体を書きますか? –