免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4789 | 回复: 13

请问如何把替换的字符串保存在源文件 [复制链接]

论坛徽章:
0
发表于 2007-10-25 14:29 |显示全部楼层
#!/bin/perl

open(FH1,"/b");
        while($line1=<FH1>){
                        $line1=~s/^/ab/;
                }
        }

文件b的内容如下

cde
cde

变成
abcde
abcde

怎么才能直接在源文件里生效呢 谢谢

论坛徽章:
0
发表于 2007-10-25 14:44 |显示全部楼层

回复 #1 honbj 的帖子

s/(.*)/ab$1/   ??

论坛徽章:
0
发表于 2007-10-25 14:48 |显示全部楼层

回复 #2 bernana 的帖子

这个也没有在文件里直接该 我现在想直接在源文件生效
有大侠知道吗? 谢谢!!

论坛徽章:
0
发表于 2007-10-25 17:11 |显示全部楼层
没有特别直接的方法, 只能重写, 或者直接用vi或emacs的正则替换功能.

论坛徽章:
0
发表于 2007-10-25 17:19 |显示全部楼层
File::Tie
米写错吧

论坛徽章:
0
发表于 2007-10-25 17:34 |显示全部楼层
原帖由 perljoker 于 2007-10-25 17:19 发表
File::Tie
米写错吧


写错了:>
Tie::File

论坛徽章:
0
发表于 2007-10-25 17:55 |显示全部楼层

回复 #1 honbj 的帖子

Key word: Edit the file just in place
Methods: using Perl switch -i -p -e
Example: perl -i -p -e 's/(.*)/ab$1/' your_file
Help: perl -h

--ulmer

论坛徽章:
0
发表于 2007-10-26 16:46 |显示全部楼层

回复 #7 ulmer 的帖子

请问不用命令行 在程序里能实现吗 谢谢

论坛徽章:
0
发表于 2007-10-26 16:55 |显示全部楼层
honbj

发表于 2007-10-26 16:46
请问不用命令行 在程序里能实现吗 谢谢




当然可以了
其实就是模拟手动修改的过程嘛
1、读文件到程序中
2、修改对应的位置
3、把修改后的信息写回文件

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
发表于 2007-10-26 17:01 |显示全部楼层
perl -pi -e ...
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP