我的文件是这样的
DIV=25
FACILITY=11111
我希望使用Perl将DIV = 25替换为DIV = 30。下面是我的脚本,但文件的输出是DIV = 3030
open( IN_IOE, $FILE_NAME ) || die "Cannot open file";
my @line_ioe = <IN_IOE>;
close(IN_IOE);
chomp @line_ioe;
foreach $_ ( @line_ioe ) {
s/DIV=/DIV=30/
}
open( OUT, ">test.txt" );
foreach $_ (@line_ioe) {
print OUT "$_ \n";
}
close(OUT);
我的文件输出是
DIV=3030
FACILITY=11111
任何人都可以告诉我如何用Perl替换文件中的那一行,并指出我错在哪里。
答案 0 :(得分:1)
您可以在命令行的一行Perl中执行此操作:
perl -pi -e 's/DIV=25/DIV=30/' file.txt
答案 1 :(得分:0)
您展示的代码肯定没有将DIV=30
更改为DIV=3030
。它根本没有做任何事情因为您已打开输出文件以进行输入
这一行
open( OUT, "<test.txt");
应该是这样的
open OUT, '>', 'test.txt' or die $!;
此外,如果您想将DIV=30
替换为DIV=25
,那么您需要编写它。我认为替代显然很明显
s/DIV=/DIV=25/
会将DIV=30
更改为DIV=2530
。请改用
s/DIV=30/DIV=25/
答案 2 :(得分:0)
如果您有多行具有不同的数字(即DIV = 25,DIV = 31,DIV = 21),您可以执行以下操作。
findTop
这里\ d是替换任何数字,'g'是全局执行此操作。