perl 工具小脚本

简介:
工具小脚本
# !/bin/perl
use  File :: Find;
use   Log :: FileSimple;

# use strict;
#use warnings;

# 说明: 
#     遍历出 "/cygdrive/c/Documents and Settings/Administrator/"  
#       满足 "^.*\.txt$" 添加文件
#         并运行 "ls -l $fileAllName " 
#    运行日志 ./log
#
# perl this.pl  
#     "ls -l $fileAllName " 
#     "/cygdrive/c/Documents and Settings/Administrator/"  
#     "^.*\.txt$"
#     ./log
#
# run_comm 参数1 替换说明:
#     $filePath  为输入参数2,遍历根目录 "/cygdrive/c/Documents and Settings/Administrator/"  
#    $fileAllName 为当前遍历,满足正则条件的 全路径+文件名
#    $logicFileAllName  为当前遍历,满足正则条件的 逻辑路径+文件名
#    $logicFilePath 为当前遍历,逻辑路径
#    $logicFileName 文件名称
#    $logicFileExp  文件后缀  
#        (test.txt 文件  
#            $logicFileName 为 test 
#            $logicFileExp 为 txt
#            )


my   $run_comm = $ARGV [ 0 ];
my   $file_path = $ARGV [ 1 ];
my   $file_find_rex = $ARGV [ 2 ];
my   $logfile = $ARGV [ 3 ];


my   $log   =  new  Log :: FileSimple(name =>   ' Log::FileSimple logs ' ,
                              file      
=>   " $logfile " ,
                              mask      
=>   - 1 ,
                              autoflush 
=>   0 ,
                              );

sub  fileThumb{
 
eval {
  
$_tmp_run_comm = $run_comm  ;
  
if / $file_find_rex /  ){
    
$fileNum ++ ;
    
$_tmp_run_comm =~ s /\ $filePath / $file_path / g;
    
    
my   $_file_all_name = $File :: Find :: name;
    
$_tmp_run_comm =~ s /\ $fileAllName / $_file_all_name / g;
    
my   $_logic_file_all_name = $_file_all_name ;
          
$_logic_file_all_name =~ s / $file_path // g;
        
$_logic_file_all_name =~ s /^\ s *\.// g;
    
$_tmp_run_comm =~ s /\ $logicFileAllName /\.\/ $_logic_file_all_name / g;
    
if ( $_logic_file_all_name =~/^ ( .* ) \/ ([ ^\/ ] * ) \. ([ ^\. ] * )$ / ){
      
my   $_logic_file_path = $ 1 ;
      
my   $_logic_file_name = $ 2 ;
      
my   $_logic_file_exp = $ 3 ;
      
$_tmp_run_comm =~ s /\ $logicFilePath /\.\/ $_logic_file_path / g;
      
$_tmp_run_comm =~ s /\ $logicFileName / $_logic_file_name / g;
      
$_tmp_run_comm =~ s /\ $logicFileExp / $_logic_file_exp / g;
      }
    
# print $_tmp_run_comm,"\n";
     my   @return = eval { system ( " $_tmp_run_comm 2>&1 \|echo \$\?  " )};
    
if  (  $return [( @return - 1 )]  !=   0  ) { 
      
$log -> log (message => " success($fileNum):$_file_all_name " );
       }
else {
      
$log -> log (message => " error($fileNum):$_file_all_name " );
        }
  }
 }
}


find(
\& fileThumb , $file_path );

本文转自博客园刘凯毅的博客,原文链接:perl 工具小脚本,如需转载请自行联系原博主。


目录
相关文章
|
1月前
|
Perl
|
1月前
|
Perl
|
1月前
|
Perl
|
1月前
|
Perl
|
1月前
|
Perl
|
1月前
|
Perl
|
11月前
|
Shell Linux Python
开源shell脚本系列-安装、卸载python3
开源shell脚本系列-安装、卸载python3
|
Shell 编译器 Linux
zlib-1.2.11库、libpng-1.6.36库编译及交叉编译 —— 附带shell编译脚本及源码
zlib-1.2.11库、libpng-1.6.36库编译及交叉编译 —— 附带shell编译脚本及源码
336 0
zlib-1.2.11库、libpng-1.6.36库编译及交叉编译 —— 附带shell编译脚本及源码