perl修改文件内容|在Perl脚本语言下如何修改文件内容

㈠ perl,正则表达式修改文件

usewarning;my$xxxx;#设置初始变量openxxx;#怎么打开文件,自己看书吧while(<$文件变量>)#这个就是遍历文件的每一行{#使用正则表达式+if语句,思路:如果在开头能匹配到任意字符,则输出匹配到的内容。$&if(/^./,$_);#大概是这个意思,记不太清,$_默认变量,代表每一行的内容,你自己查小骆驼,书上这些基础知识点都有,这道题是最基本的了}close$xxx;#关闭句柄

㈡ 如何在使用Perl来修改文本文件,要求在文件中出现字符('或,'时在中间插入一个N,即将其改为(N'或,N'

给一个比较完美的方案: #!perl -w use strict; #AUTHOR: niejieqiangwhile (<>) {s/('.*?')/&rm($1)/ge;print;}sub rm {my $str = $_[0];$str=~s/^/N/;return $str;}

㈢ 在linux下用perl修改文件

第一是,perl文件的第一行要指定perl解释器的位置,典型的如下#!/usr/bin/perl第二是,perl文件的权限要有可执行的权限,可通过右键->属性->权限,勾选来添加可执行权限(当然,你本身也应该有修改该文件权限的权限),也可以通过在命令行上执行chmod+x来添加执行权限。

㈣ 用perl -pi -e命令对linux系统某文件夹中的所有文件进行内容替换操作,该操作怎么恢复

操作系统没有提供恢复功能,如果你有备份文件,可以使用备份的文件替换当前的文件,否则是没有办法恢复的。 因为LINUX文件系统为了最求较高效率,没有对文件设置版本功能,修改文件并不自动保留修改前的内容。

㈤ 在Perl脚本语言下,如何修改文件内容

你这问题问的不清楚,你给的例子里面也只处理了10转28,而且目前你这个写法,110也会被转化为128,最重要的是,你这代码完全不能修改你的文件,因为你foreach$kill(@new){$kill=~s/10/28/g;}这个只是对临时变量$kill处理了。完全没有对@new改动,所以再把new的内容写到FILE2没有意义。

openFILE1,"a.txt";my@new=<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

你看看是不是能解答你的问题


赞 (0)