⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 searchfile.pl

📁 对文件或目录的操作函数模版.根据对目录的分析结果对目录进行深度或广度遍历从而操作文件(或目录)
💻 PL
字号:
#! D:/Perl/bin/perl -w
use strict;

require filedir_misc;

my $debug = $ARGV[1];
my ($findAmount, $stopIndex) = (0, 105);

sub dirParse()
{
    my $dirName = shift;

    return 0 if ($dirName =~ m/cvs/i);

    return -1;
}

sub searchInFile()
{
    my ($fileName, $strToFind) = @_;
    my ($line, $lineNum, $ret);

    &strToRegEx(\$strToFind);

    $lineNum = 0;
    $ret = -1;

    open(CURFILE, $fileName) || die $!;

    while ($line = <CURFILE>) {
        ++$lineNum;
        #print "line--" . $lineNum . "\n" if ($debug);

        if ($line =~ m/$strToFind/i) {
            print "$strToFind\n" if ($debug);

            $ret = $lineNum;
            last;
        }
   }

    close(CURFILE);

    return $ret;
}

sub fileHandler()
{
    my ($fileName, $dirParseValue) = @_;
    my ($strFindRet, $strToFind);

    # here is file_name compare only
#    if (-f $fileName and $fileName =~ m /JkUDP\.[c|h]/i) {
#        print "find file --- $fileName\n";
#        exit() if (0 == $stopIndex || ++$findAmount >= $stopIndex);
#    }

    $strToFind = 'JkJabwtLocDevIsPowerOn';

    if (-f $fileName and $fileName =~ m /.*\.[c|h]/i) {
        #print "find file --- $fileName\n" if ($debug);

        $strFindRet = &searchInFile($fileName, $strToFind);
        if (0 < $strFindRet) {
            print "--------$findAmount\n";
            print "$strToFind\n";
            print "line: $strFindRet - $fileName\n";
            exit(0) if (0 == $stopIndex || ++$findAmount >= $stopIndex);
        }
    }
}

sub dirHandler()
{
    my ($curDir, $dirParseValue) = @_;

    #print "handling folder ---------------------------- $curDir\n";
}

sub main
{
    if (! $ARGV[0] or !-e $ARGV[0]) {
        print "usage:\n\t perl \"this.pl\"    directory    [dbg].\n";
        return 0;
    }

    &handleSingleDir($ARGV[0], *dirParse, 1, *dirHandler, *fileHandler, -1) if (-d $ARGV[0]);
}

&main();

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -