perl如何打开一个文件,并对其中的字符串进行替换操作?比如 我建一个文本 最好能补个例子 新人 不太懂 谢
vi123里面内容是(abcadfadf)我想知道怎么打开这个123的文件并且把里面的adf替换为AWW不要单行命令!谢谢...
vi 123里面内容是 (abc adf adf )我想知道怎么打开这个123的文件并且把里面的adf替换为AWW 不要单行命令!谢谢
展开
2个回答
展开全部
楼上的方法是对的,perl读写的句柄不能混用,无法在原地做替换,必须输出另外一个文件。
如果是linux系统,原地替换可以用sed -i命令~~~~~
如果是linux系统,原地替换可以用sed -i命令~~~~~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#! /usr/bin/perl -w
# changing all of 'adf' of every line within the file named 123 of the current directory to 'AWW'.
open( _123_, "<", "./123" ) or die "123 didn't exist in the current directory !\n";
open( _123_BAK_, ">", "./123.bak" ) or die "123.bak didn't exist in the current directory !\n";
while ( <_123_> ) {
chomp;
if ( /\badf\b/i ) {
s/adf/AWW/g;
}
print _123_BAK_ $_ . "\n";
}
close( _123_ );
close( _123_BAK_ );
system "mv ./123.bak ./123";
system "rm -rf ./123.bak";
# changing all of 'adf' of every line within the file named 123 of the current directory to 'AWW'.
open( _123_, "<", "./123" ) or die "123 didn't exist in the current directory !\n";
open( _123_BAK_, ">", "./123.bak" ) or die "123.bak didn't exist in the current directory !\n";
while ( <_123_> ) {
chomp;
if ( /\badf\b/i ) {
s/adf/AWW/g;
}
print _123_BAK_ $_ . "\n";
}
close( _123_ );
close( _123_BAK_ );
system "mv ./123.bak ./123";
system "rm -rf ./123.bak";
追问
open( _123_, "<", "./123" ) 这是什么意思呢 ?从./123输入到-123-?
追答
open操作符会让perl向操作系统申请一个123文件到你的程序的连接,_123_就是这个文件的文件操作符(filehandler)。我也是初学,上面这个程序是正确的但不是最简洁的,你可以参考Learning Perl写出更好的代码:)
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询