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毫秒