不会读取 影藏文件

main

#!/usr/bin/perl
use 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, reg
my ($path, $suffix, $rp) = @ARGV;
@suffix = split " ", $suffix; # 记得把字符串,转化为数组 sub search_file{
my ($fname, $rp) = @_;
my ($o) = split("/", $rp);
open of, "<", $fname;
while(<of>){
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(<of>){
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

perl 遍历指定目录下的所有文件,替换指定文本内容,返回受影响的文件路径的更多相关文章

  1. 写一个PHP函数,实现扫描并打印出指定目录下(含子目录)的所有jpg文件名

    写一个PHP函数,实现扫描并打印出指定目录下(含子目录)的所有jpg文件名 <?php $dir = "E:\照片\\";//打印文件夹中所有jpg文件 function p ...

  2. java-IO流(File对象-深度遍历指定目录下的文件夹和文件)

    需求:遍历这个树状结构 File(String pathname) '\\'为了转义'\' // 通过抽象路径pathname 创建一个新的文件或者目录 File parent = new File( ...

  3. C#.NET中遍历指定目录下的文件(及所有子目录及子目录里更深层目录里的文件)

    //遍历一个目录下所有的文件列表,代码实例 DirectoryInfo dir = new DirectoryInfo(folderName);var list = GetAll(dir); /// ...

  4. c++ 指定目录下的文件遍历

    要实现指定目录下文件的遍历需要执行一下的部分: 第一步获取当前路径的名字:(MAX_PATH是在windows定义的所有的路径名字不超过其,调用该函数会使得得到当前的目录) #include < ...

  5. delphi遍历指定目录下指定类型文件的函数

    遍历指定目录下指定类型文件的函数// ================================================================// 遍历某个文件夹下某种文件,/ ...

  6. [No000073]C#直接删除指定目录下的所有文件及文件夹(保留目录)

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  7. C# 获取指定目录下所有文件信息、移动目录、拷贝目录

    /// <summary> /// 返回指定目录下的所有文件信息 /// </summary> /// <param name="strDirectory&qu ...

  8. iOS案例:读取指定目录下的文件列表

    // // main.m // 读取指定目录下的文件列表 // // Created by Apple on 15/11/24. // Copyright © 2015年 Apple. All rig ...

  9. Java基础知识强化之IO流笔记49:IO流练习之 复制指定目录下指定后缀名的文件并修改名称的案例

    1. 复制指定目录下指定后缀名的文件并修改名称的案例     需求:复制指定目录下的指定文件,并修改后缀名.  • 指定的文件是:.java文件.     • 指定的后缀名是:.jad     • 指 ...

随机推荐

  1. Morris图表使用小记

    挺好用的,碰到几个问题,有的是瞎试解决了的: 1.我想折线图能够响应单击事件,即点击某个节点后,就能加载进一步的信息,帮助没找到,参照另外一个地方的写法,居然支持事件 Morris.Line({ el ...

  2. Hbase 命令小结

    1.创建test,如果存在先删除 hbase(main)::> disable 'test' row(s) in 1.4250 seconds hbase(main)::> drop 't ...

  3. 【Linux】CentOs中yum与rpm区别

    一.源代码形式 1.      绝大多数开源软件都是直接以原码形式发布的 2.      源代码一般会被打成.tar.gz的归档压缩文件 3.      源代码需要编译成为二进制形式之后才能够运行使用 ...

  4. C#:注册组件 (cmd)

    public class ComRegistor { public static string classID = "CLSID\\{479A1AAC-C148-40BB-9868-A977 ...

  5. 剖析 Linux hypervisor

    hypervisor 之于操作系统类似于操作系统之于进程.它们为执行提供独立的虚拟硬件平台,而虚拟硬件平台反过来又提供对底层机器的虚拟的完整访问.但并不是所有 hypervisor 都是一样的,这是件 ...

  6. openssl - X509证书操作函数

    原文链接: http://blog.csdn.net/zqt520/article/details/26965797 现有的证书大都采用X.509规范,主要同以下信息组成:版本号.证书序列号.有效期. ...

  7. Nginx 访问日志配置

    一.Nginx 访问日志介绍 Nginx 软件会把每个用户访问网站的日志信息记录到指定的日志文件里,供网站提供者分析用户的浏览行为等,此功能由 ngx_http_log_module 模块负责. 二. ...

  8. Android Studio updating indices 一直刷新和闪烁

    Android Studio 更新到了 3.1.3 版本,在导入了工程以后,一直出现了 updating indices 刷新的情况,造成闪烁,在切换到其他视图以后,Android Studio 会一 ...

  9. 2D空间中求两圆的交点

    出处:https://stackoverflow.com/questions/19916880/sphere-sphere-intersection-c-3d-coordinates-of-colli ...

  10. 译: 6. RabbitMQ Spring AMQP 之 RPC

    Remote procedure call (RPC) 在第二篇教程中,我们学习了如何使用工作队列在多个工作人员之间分配耗时的任务. 但是如果我们需要在远程计算机上运行一个函数并等待结果呢?嗯,这是一 ...