gpt4 book ai didi

perl - 如何使用perl添加和替换线阵列中的行

转载 作者:行者123 更新时间:2023-12-01 00:58:27 25 4
gpt4 key购买 nike

我想通过添加一些行并替换其他一些行来编辑文件。
我正在尝试使用包含我的文件一行一行的数组,即

    my $output_file_string = `cat $result_dir/$file`;
my @LINES = split(/\n/, $output_file_string);

我有一个我想在文件中找到的行的哈希表,并替换它们或在它们之后添加额外的行。
我编写了以下代码来识别这些行:
        foreach my $myline (keys %{ $hFiles_added{$file} }) { 
foreach my $line ( @LINES) {
if ($line =~ /\Q$myline\E/) {
### here should be a code for adding a new line after the current line ###
}
}
}
#### here should be a code to return the array to the output file ####

我不知道如何添加\替换部分,以及如何将我编辑的文件保存回文件(而不是数组

谢谢你
沙哈尔

最佳答案

使用 splice更改 @LINES 的内容.

使用 openprint写信 @LINES回到你的文件。

如果其他人可能同时编辑此文件,那么您将需要 flock .

如果性能对您来说不是那么重要,那么您可以查看 Tie::File .

对于更复杂的文件处理,您可能需要 seektruncate .

但这一切都在 Perl 常见问题解答中得到了很好的介绍 - How do I change, delete, or insert a line in a file, or append to the beginning of a file?

顺便说一句,您的前两行代码可以替换为一行:

my @LINES = `cat $result_dir/$file`;

关于perl - 如何使用perl添加和替换线阵列中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25620896/

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