Linux 版 (精华区)

发信人: tcpip (高级草包&坏蛋.org), 信区: Linux
标  题: 贴一个例子,perl写的小工具,适合做'教材'
发信站: 哈工大紫丁香 (2000年10月26日21:21:16 星期四), 转信

 这个小工具可以抽取某个文本文件中间的若干行,输出到屏幕上
可以利用重定向输出到文件里面。前两天,需要用到这么个东西
就临时写了一个,觉得可以拿出来示人(主要是hit用perl的人比
较少,所以才敢后者脸皮贴出来,习习)

这个工具用到了下列东西,命令行参数传递,文件操作,特殊字
符的利用管道操作,进程控制等
---------------cut here--------------------------
#!/usr/bin/perl

$ARGC=@ARGV;
if( $ARGC < 3){
 print "useage: draw-out.pl file_name cut_begin cut_end\n";
 exit;
}
$filename=$ARGV[0];
$cut_begin=$ARGV[1];
$cut_end=$ARGV[2];
if($cut_begin==$cut_end){
 print "Are you sure?!?!\nFrom $cut_begin to $cut_end!!\n";
 exit;
}
if($cut_begin > $cut_end){
 ($cut_begin,$cut_end)=($cut_end,$cut_begin);
}

open(WC,"wc $filename|");
$return=<WC>;
close(WC);
$return=~m/\d+/;
$max_lines=$&;
if($cut_end > $max_lines){
    $cut_end=$max_lines;
}

$count=0;
open(IN,$filename)|| die "Can't open file: $filename\n";
while(<IN>){
 $count++;
 if($count>$cut_end){exit;}
    if($count>=$cut_begin && $count<=$cut_end){
 print;
    }
}
close(IN);
---------------cut here--------------------------

※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: diamond.hit.edu.cn]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:4.013毫秒