『壹』 perl实现2个文件的一些内容替换,我遇到麻烦,请帮忙,谢谢啦。
正则表达式(Regular Expression)方法可以满足你上面所需的要求正则表达式通常被用来检索和/或替换那些符合某个模式的文本内容。#!/usr/bin/perlopen A ,"sdf.txt";my $a=do{local $/;<A>};open B,"zhaowenjian.bat";my $b=do{local $/;<B>};my %a= $a =~/(\w+)\s+((?:\d+\.)+\d+)/g;$b =~ s/$_\\.*?\\/$_\\$a{$_}\\/ for keys %a;print $b;
『贰』 perl读取文件,然后替换内容,再生成新的文件。然后打包。(有分)
这个问题问的有点儿含糊,不过提供一个可能的方法供您参考。使用 perl 的 $^| 命令,这个命令的用法解释为:1、$^|=“” — 设置为空代表修改文件内容;2、$^|=“.other” — 代表将修改后的文件保存为 filename.other
『叁』 perl中,关于多个文本内容替换
读取和写入不能用同一个handler, 可以先读取内容,替换完后再把结果写入原文件。my @data;open LOG, "< $file" ;while(<LOG>){s/hehe/haha/g;push @data, $_;}close LOG;open LOG1 ,">$file";foreach(@data) {print LOG1;}close LOG1;
『肆』 perl脚本语言,在Perl脚本语言下,如何修改文件内容
Linux中使用Perl修改文件当你编写脚本或是安装程序的时候,就需要修改特定文件的数据,如果这时有自动修改文件的功能,那将会是非常实用的。例如,当你需要移动一个文件中的某个字符串或是命令,当你要改变许多文件的IP地址的时候,这个功能就可以拿来利用了。手动改变这些文件会耗费很长的时间,特别当它是一件重复性的任务。但是,你可以使用Perl程序来完成。所有的Linux供应商都有这个程序。执行以下操作:$perl-pi-e's|[old_string]|[new_string]|g'[file]字符串可以是简单的命令或是常规的表达式。如果你要改变目录的位置(例:从/var/spool/mail到/var/spool/messages),你想要改变目录/etc下的每个文件来反映路径变化。执行以下操作:$find/etc-typef|xargsperl-pi-e's|\/var\/spool\/mail|\/var\/spool\/messages|g'在这个例子上,我们使用搜索和xargs来确保系统只运行常规文件的命令,而不是非常规目录或其它文件类型的命令。这也就运行了/etc目录树,而且会递归的改变所有文件。由于我们/标识,所以我们必须输入了像\/var这样的路径而不是/var。Linux中使用Perl修改文件时我们也可以在Perl表达式使用分隔符。(除了使用|,你也能够使用/,#,@作为分隔符。)执行以下操作,从整个文件里移开一个命令$perl-pi-e's|myword||g'file这就从基本上没有使用任何东西却代替了“myword”.(需要注意的是在第二个和第三个分隔符之间没有空格)。以这种方式使用Perl的话,当你修改配置文件或其它任何类型的数据的时候,你就会极具创造力。它就是一个自动搜索和代替的功能。
『伍』 在Perl脚本语言下,如何修改文件内容
你这问题问的不清楚,你给的例子里面也只处理了10转28,而且目前你这个写法,110也会被转化为128,最重要的是,你这代码完全不能修改你的文件,因为你foreach$kill(@new){$kill=~s/10/28/g;}这个只是对临时变量$kill处理了。完全没有对@new改动,所以再把new的内容写到FILE2没有意义。
openFILE1,"a.txt";[email protected]=<FILE1>;my$result=join'',@new;$result=~s/10/28/gis;closeFILE1;openFILE2,">a.txt";printFILE2$result;closeFILE2;
测试了一下28替换10的,源文件内容:
# 102319482311010101a
# 11210948231a
# 112119482310b
执行之后,同一文件内容改变为:
# 282319482312828281a
# 11228948231a
# 112119482328b
你看看是不是能解答你的问题
『陆』 怎么用perl替换文件中的字符串
my$s='';my$d='';open$H,$file;while(<$H>){tr/$s/$d/;print;}
『柒』 用perl语言,把一个文件中的部分内容由另一个文件替换
这类程序的一般套路:先打开文件1,获得需要的内容到变量里面,关闭文件1,再打开文件2,获取内容到内存变量中,进行替换,关闭文件2后重新以写方式打开,然后把内存变量写入文件2。
『捌』 关于perl代码的替换
perl的分隔符是可以自定义的。如$scriptDir=~s:\\:/:g;以上的分割符使用的是:其实等价于$scriptDir=~s{\\}{/}g;为什么不用s/regex/replacement/modifier这种形式呢?这是因为正则想将\替换为/。所以分隔符绕开/就不会产生冲突了,将:替换为!或者'都能正常工作第二个意义不是很明确。看起来像是做行末\转义的
『玖』 perl 文件间的匹配替换
你想要的是一个来 FULL JOIN,而不是简源单的“查找替换”FULL JOIN 用笛卡尔积来求。建立两个 LIST 分别对应两个表, foreach $a in (@a) { foreach $b in (@b) { # … <A> } }在 <A> 处,判断 $i 和 $j 的键是否相同,如果相同,则进行 JOIN 操作: $ak = $a->[0]; $bk = $b->[0]; if ($ak eq $bk) { # JOIN: my @av = (@a); my @bv = (@b); shift @bv; my @c = (@av, @bv); print join(', ', @c) . "\n"; }
『拾』 如何perl新数据对旧数据进行替换
你是想要根据文件的时间对比,新文件替换旧文件。还是对文本数据进行替换,比如某一行。最好是要有1,原来的样子。2修改后的样子。这样的一个说明,才好理解。
未经允许不得转载:山九号 » perl文件替换文件内容|perl 文件间的匹配替换