Chinaunix

标题: 文件内容替换 [打印本页]

作者: gonglifeng    时间: 2014-12-12 10:11
标题: 文件内容替换
想进行文件内容替换

文件内容如下:

username1 34534534534565
username2 12798088796784
username3 23456654676788
username4 23445566778989
username5 23255466576786
username6 35435467889433
username7 56576789845456
username8 34546778678453
username9 65657657856768
username10 43546765776863

比如查找到 username4 这一行

username4 23445566778989

把username4 后面的数字替换成 12345678912345 其他行保持不变。

用perl实现. 功能: 查找文件中的用户名,找到用户名后,更改后面的无规则数字并保存.谁有好的思路,求助!
作者: jiangphoenix    时间: 2014-12-12 10:40
#!/usr/bin/perl
use warnings;
use strict;
open(IN,"file"||die;
my (@line,$name,$num);
while(<IN>{
   @line=split(" ",$_);
   $name=$line[0];
   $num=$line[1];
   if ($name eq 'username4') {
       $_=~s/$num/12345678912345/;
   }
}
我是新手不知道能不能帮助到你:
作者: gonglifeng    时间: 2014-12-12 11:18
本帖最后由 gonglifeng 于 2014-12-12 11:19 编辑

回复 2# jiangphoenix


    查找替换完后, 文件无法写入啊,求助。
作者: jiangphoenix    时间: 2014-12-12 12:03
是修改原文件么,open(IN,"+>file")||die;你这样写试试
作者: lyb3708621    时间: 2014-12-12 16:30
这是个很简单的替换需求,不需要写程序,sed一个命令就可以完成。
sed -i 's/\($user\).*/\1 $content/' $file_name
作者: gonglifeng    时间: 2014-12-12 17:51
回复 5# lyb3708621


    高人啊




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2