Chinaunix
标题:
初学2天问个低级问题(文本小处理)
[打印本页]
作者:
穆赫兰道
时间:
2010-12-21 10:35
标题:
初学2天问个低级问题(文本小处理)
问题1:我直接输入 perl -p -i -w -e 's/hello/java/ig' helloworld 是可以替换成功的。(4个参数的顺序换了后提示/hello/java/文件打不开,是不是参数顺序不能换的?)
然后我直接在文本里vi编辑
#!/usr/bin/perl
open hup, "/usr/local/hup_perl/helloworld"||die"canot open!";
while(<hup>){
s/hello/java/ig;
print;#这里打印的结果是替换成功的
}
close hup;
#cat helloworld 文件没有替换成功,是不是还要什么操作漏了?
作者:
jiannma
时间:
2010-12-21 10:55
这里的print; 是显示标准输出,即屏幕上
可以这样:
open FILE, "txt" || die "Cannot open:$!";
open FILE1, ">txt2";
while (<FILE>){
s/hello/java/g;
print FILE1;
}
close FILE;
close FILE1;
复制代码
作者:
穆赫兰道
时间:
2010-12-21 11:02
本帖最后由 穆赫兰道 于 2010-12-21 11:06 编辑
谢谢楼上帮助
1.我要直接写入file里,而不是先备份或创建个新文件
因为我这个文件更新很频繁,更新错了问题也不大,可以手工修改,但是我不需要备份
上面的代码还少了部分 应该先重命名file吧,然后创建的新文件必须是原file的文件名,我必须要用这个文件名。
即补充说明2点:
1.不产生新文件,不备份,就原文件修改,当然删除原文件,重新拷贝是可以的。
2.替换成功的文件的文件名必须是原文件名,系统只认那个文件名。
作者:
zhlong8
时间:
2010-12-21 14:53
perl -i.bak -pe "s/hello/java/ig" helloworld
你是不是把 -e 换错地方了
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2