如何从日志文件中的行中删除无关信息?

发布于 2024-12-11 00:36:17 字数 162 浏览 0 评论 0原文

read_data:向客户端 158.136.150.108 读取 4 个字节失败。 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

In the line above, I want to use the s/// operator to remove all the text in the line after "read_data:".

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

━╋う一瞬間旳綻放 2024-12-18 00:36:17
$subject =~ s/(?<=^read_data:).*//;

这个简单的 Perl 正则表达式就可以解决问题。

工作示例: http://ideone.com/zhGi5

$subject =~ s/(?<=^read_data:).*//;

This simple perl regex will do the trick.

Working example : http://ideone.com/zhGi5

东北女汉子 2024-12-18 00:36:17

我会使用

$str =~ s/^read_data\K:.*//;

快速(由于不使用捕获)和简单。如果有的话,它甚至会保留换行符。如果要删除任何尾随换行符,请改用以下命令:

$str =~ s/^read_data\K:.*//s;

I'd use

$str =~ s/^read_data\K:.*//;

Fast (by virtue of not using captures) and simple. It even preserves the newline if there is one. If you want to remove any trailing newline, use the following instead:

$str =~ s/^read_data\K:.*//s;
幸福丶如此 2024-12-18 00:36:17
#!/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
#!/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
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文