gpt4 book ai didi

linux - 使用 perl 将文本文件中的字符替换为其他字符

转载 作者:太空宇宙 更新时间:2023-11-04 06:03:44 24 4
gpt4 key购买 nike

我在解析文本文件的输出时遇到问题。我想在字符之间添加管道符号来进行类似于egrep的多重搜索,文本文件如下

service entered the stopped state,critical
service entered the running state,clear

代码:

open(my $data, '<', $Config_File) or die "Could not open '$Config_File"
my $reg_exp;
my $severity;
my @fields=();
while (my $line = <$data>)
{
chomp $line;
if(!$line =~ /^$/)
{
@fields = split "," , $line;
$reg_exp = $fields[0];
$severity = $fields[1];
print $reg_exp;
}
}

#print $fields[0];
#last unless defined $line;

close($data);

预期输出

service entered the stopped state|service entered the running state

最佳答案

你并不遥远,你只需要实际连接字符串即可。最简单的方法是将 $fields[0] 推送到数组,然后等到输入完成后再打印它。即:

my @data;
while (my $line = <$data>) {
next if $line =~ /^$/; # no need to chomp
my @fields = split /,/, $line;
push @data, $fields[0];
}
print join("|", @data), "\n";

我感觉到您正在尝试使用此代码实现其他目标,这就是所谓的 XY-problem

关于linux - 使用 perl 将文本文件中的字符替换为其他字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14768417/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com