如何在Perl中编辑文件文本

开发者

我现在有一个文件,我想更新variable.value的值。档案内容:

<Config>
 NUM1 =  8
 AMV1 =  8
 AMV2 =  8
 DEF2 =  8
 DGF =  8
 </Config>

现在,我要更改NUM1Perl如何执行此操作的值

疾病

您可以使用单行代码直接在命令行中执行此操作:

perl -i~ -pe 's/^(\s*NUM1 )=.*/$1=NewValue/' config-file
  • -i~ 更改文件“就地”,保留带有波浪号的备份
  • -p 逐行读取输入并打印
  • s/// 是替代
  • () 在正则表达式中创建捕获组,第一个捕获组可以从替换零件中引用为 $1

在脚本中,您需要添加替换-p为实际代码:

#!/usr/bin/perl
use warnings;
use strict;

while (<>) {
    s/^(\s*NUM1 )=.*/$1=NewValue/;
    print;
}

另存为update-config,运行为update-config config-file > new-config

或者,如果您想自己处理文件的打开,也可以:

#!/usr/bin/perl
use warnings;
use strict;

my $filename = 'config-file';
my $newfile  = "$filename.new";
my $backup   = "$filename~";

open my $IN, '<', $filename or die $!;
open my $OUT, '>', $newfile or die $!;
while (<$IN>) {
    s/^(\s*NUM1 )=.*/$1=NewValue/;
    print {$OUT} $_;
}
close $OUT or die $!;
rename $filename, $backup or die $!;
rename $newfile, $filename or die $!;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在perl中编辑XML文件的内容?

来自分类Dev

如何在我的终端中编辑文本文件

来自分类Dev

使用nano命令时,如何在文本编辑器而不是终端中编辑文件?

来自分类Dev

如何在扫描的.jpeg中编辑文本?

来自分类Dev

如何在python中编辑输入的文本

来自分类Dev

如何在Notepad ++中编辑Unicode文本?

来自分类Dev

如何在扫描的.jpeg中编辑文本?

来自分类Dev

如何在Visual Basic中编辑XML文件中节点的内部文本?

来自分类Dev

如何在文本文件中编辑一行数据

来自分类Dev

Inno Setup-如何在设置过程中从文本文件编辑特定行?

来自分类Dev

如何在Nano文本编辑器中解密文件?

来自分类Dev

如何在 free pascal 中编辑文本文件的特定部分?

来自分类Dev

如何在python 3.6中编辑多行文本文件?

来自分类Dev

如何在python中搜索选择和编辑文本文件的特定部分

来自分类Dev

开机后,如何在文本编辑器或终端中自动显示文件中的文本?

来自分类Dev

开机后,如何在文本编辑器或终端中自动显示文件中的文本?

来自分类Dev

如何在PHP中编辑文件的JSON?

来自分类Dev

如何在Nano终端中编辑文件?

来自分类Dev

如何在Java中编辑.yml文件?

来自分类Dev

如何在Powershell中编辑.property文件

来自分类Dev

如何在php中编辑文件?

来自分类Dev

如何在Nano终端中编辑文件?

来自分类Dev

如何在vi中编辑文件内容?

来自分类Dev

如何在VIM中编辑多个文件?

来自分类Dev

如何在/ usr / bin中编辑文件?

来自分类Dev

如何在AAC文件中编辑标签?

来自分类Dev

如何在Java中编辑.yml文件?

来自分类Dev

如何在Vim中编辑多个文件?

来自分类Dev

如何在PhpStorm中编辑.env文件?

Related 相关文章

热门标签

归档