perl求助~
最近项目需要,要做一个文本过滤器,意思大概是对非二进制文件中的内容进行处理,IP地址EMAIL之类的替换成特定的字符串,小弟从没接触过perl,敢问这个麻烦吗?要怎么做呢?还有怎么识别是否二进制文件呢?
[解决办法]
不麻烦。但是你需求描述得不清楚,不知道具体要干什么。
[解决办法]
打开文件:open(FILE,'<XXX.txt')
while($line =<FILE>)
{
先匹配: if($line =~ /iporemail/)
替换是:s/替换内容/替换后内容/
}
close(FILE);
大概就这些
[解决办法]
正则表达式
这很重要,真的。
[解决办法]
直接把整个文件读入内存,如果文件不太大的话
然后用正则一次全部替换掉就可以了
如果文件太大,最好是一行一行读,一行一行处理
[解决办法]
你需要看这几个东西:
模块File::Path,目录函数opendir、readdir、closedir,文件操作函数open、close、用来判断文件属性的-f、-d,读行操作符<>,外加正则表达式。
另外真不知道怎么判断二进制文件与文本文件。实际上unix系统里压根不分这个。