今天更新了perl搜索脚本_V0.9 :)
Friday, 24. November 2006, 12:36:24
昨天的脚本有一个非常大的问题,就是如果在搜索一个关键字时,如果是目录,就会把目录里所有的文件都列出来,因为目录名也是关键字的一部分,这样搜索时会出现太多的信息,现在换一种方式,如下:
就是搜索时以文件名为单位,如果文件名匹配,才显示出来。
需要以下几个文件:
ftp.list // cd到/home/ftp目录,使用find ./>ftp.list创建ftp.list文件
se_ftp.list //使用awk -F / '{print NR ":" $NF}' ftp.list
num.list // 作为缓存符合条件的行数
其中最为关键的两个脚本如下:
##======================================
azhoulinux@azhou:~/Desktop$ cat search.pl
#!/usr/bin/perl
##
## To Search the ftp
##
$finfo = <STDIN>;
print "Content-type: text/plain; charset=gb2312 \n\n";
$se_name=`echo $finfo|cut -c 5-` ;
print "you have search for:";
print $se_name;
print "\n\n";
print `./search.sh $se_name`;
exit(0);
##======================================
azhoulinux@azhou:~/Desktop$ cat search.sh
#!/bin/bash
var_char=`awk -F : '{print $0}' se_ftp.list|grep -i "$1"|awk -F : '{print $1}'`
echo "">num_list
for i in `echo $var_char`
do
echo "-e ${i}p">>num_list
done
sed -n `cat num_list` ftp.list|cut -c 3-|awk -F / '{print NR " " $NF "\n" "ftp://211.68.42.243/" $0 "\n"}'
这样就可以搜索了,并且没有上面问题:
附图:

就是搜索时以文件名为单位,如果文件名匹配,才显示出来。
需要以下几个文件:
ftp.list // cd到/home/ftp目录,使用find ./>ftp.list创建ftp.list文件
se_ftp.list //使用awk -F / '{print NR ":" $NF}' ftp.list
num.list // 作为缓存符合条件的行数
其中最为关键的两个脚本如下:
##======================================
azhoulinux@azhou:~/Desktop$ cat search.pl
#!/usr/bin/perl
##
## To Search the ftp
##
$finfo = <STDIN>;
print "Content-type: text/plain; charset=gb2312 \n\n";
$se_name=`echo $finfo|cut -c 5-` ;
print "you have search for:";
print $se_name;
print "\n\n";
print `./search.sh $se_name`;
exit(0);
##======================================
azhoulinux@azhou:~/Desktop$ cat search.sh
#!/bin/bash
var_char=`awk -F : '{print $0}' se_ftp.list|grep -i "$1"|awk -F : '{print $1}'`
echo "">num_list
for i in `echo $var_char`
do
echo "-e ${i}p">>num_list
done
sed -n `cat num_list` ftp.list|cut -c 3-|awk -F / '{print NR " " $NF "\n" "ftp://211.68.42.243/" $0 "\n"}'
这样就可以搜索了,并且没有上面问题:
附图:








