0

我正在写入一个 INI 文件,其中附加了数据,我想删除剩余的数据。

示例:在 INI 文件中数据是:email_user=xyz@pqr.com我想写email_user=abc@pqr.com 当我写它时,它会附加并使其成为:email_user=abc@pqr.comcom

我想删除最后一个字符(重写的 com)。我正在做以下事情:

#! /usr/bin/env perl

use strict;
use warnings;

seek(INI,-1,0);
print INI "email_user=abc@pqr.com";
4

3 回答 3

1

使用该truncate功能移动文件的末尾。

顺便说一句,seek(INI, -1, 0)(文件开始前的一个字节)没有意义。应该是seek(INI, 0, 0)

于 2013-09-26T00:06:31.860 回答
0

如果记录的长度不同,这种简单的方法就不起作用。您不能通过覆盖文件的一部分来“插入”或“删除”字节。您必须创建一个新文件,将新内容写入其中,最后将其重命名为旧名称。

于 2013-09-25T23:16:57.920 回答
0

这应该有效:

#!/usr/bin/perl
use warnings;
use strict;
{
    local ($^I,@ARGV)=('~','file.ini');
    while (<>) {
        s/xyz/abc/;
        print;       
    }
}
于 2013-09-26T07:49:46.783 回答