博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
perl 遍历指定目录下的所有文件,替换指定文本内容,返回受影响的文件路径...
阅读量:7075 次
发布时间:2019-06-28

本文共 1509 字,大约阅读时间需要 5 分钟。

不会读取 影藏文件

main

#!/usr/bin/perluse autodie;use utf8;use Encode qw(decode encode);if(@ARGV ne 3){ # 检查参数$err = <<"err"; The script execution parameters are wrong! ! path, "suffix", "old value/new value"err    die $err;}# path, suffix, regmy ($path, $suffix, $rp) = @ARGV;@suffix = split " ", $suffix; # 记得把字符串,转化为数组sub search_file{    my ($fname, $rp) = @_;     my ($o) = split("/", $rp);    open of, "<", $fname;    while(
){ chomp; if($_ =~ /$o/){ return !!1; } } return !!0;}sub change_file{ my ($fname, $rp) = @_; # 获取操作文件名 和 替换的正则 if( !search_file($fname, $rp) ){ # 不存在关键字直接返回 return !!0; } my @data = (); my ($o, $n) = split("/", $rp); open of, "<", $fname; while(
){ chomp; $_ =~ s/$o/$n/; push @data, $_; } open wf, "+>", $fname; print wf @data; return !!1;}sub scan_file{ my ($path) = @_; my @files = glob($path); foreach my $file (@files){ if(-d $file){ # 文件递归下去 scan_file("$file/*"); }elsif(-f $file){ foreach my $su (@suffix){ if($file =~ /$su$/){ # 文件后缀在匹配范围 if(change_file($file, $rp)){ # 收集受到影响的文件路径 print "$file\n"; } } } } }}scan_file($path);

执行

λ perl main.pl "./test/*" ".txt .html .js" ajanuw/world./test/ajanuw.txt./test/dist/bundle.html./test/src/index.js

转载于:https://www.cnblogs.com/ajanuw/p/9275767.html

你可能感兴趣的文章
spring-前置通知
查看>>
Transient修饰符的使用
查看>>
shell特殊符号,cut、sort、wc、uniq、tee、tr、split命令
查看>>
运维面试题
查看>>
java 消息摘要算法 MAC
查看>>
2011.11.6
查看>>
Linux系统获取命令帮助方法及简单命令介绍
查看>>
PyYAML序列化yaml文件数据
查看>>
Radmin远程连接TMG
查看>>
CCNA 学习笔记(三)--路由选择协议(静态路由协议)
查看>>
python 学习笔记(4)-转载
查看>>
python实例pyspark以及python中文显示
查看>>
一个典型核心网络故障分析
查看>>
获取lamp编译参数
查看>>
Linux系统下启动MySQL的命令及相关知识
查看>>
Shell理论学习(一)
查看>>
phpcms开发之模板语法规则
查看>>
CST UTC
查看>>
因为看见,所以发现:QBotVariant谢绝落幕
查看>>
我的友情链接
查看>>