Perl读取文件中的一个片段
#Perl读取文件中的一个片段,该片段由指定的开始字符串所在行,与终止字符串所在行确定
#serachAndPrint.pl
use strict;
use warnings;
print "Input search sub string for Start:";
#从标准输入中接收开始搜索字符串
chomp(my $des=<STDIN>);
my @path = split(/,/, $des);
print "Input search sub string for End: ";
#从标准输入中接收终止搜索的字符串
my $termin=<STDIN>;
print "\n";
#chomp去除des中的newline(\n)标志
#chomp $des;
#chomp去除termin中的newline(\n)标志
chomp $termin;
#open(FILE, $filename)打开文件到句柄<FILE>中,注意更换路径
open(FILE,"<","C:\\Documents and Settings\\Administrator\\桌面\\process.txt")||die"cannot open the file: $!\n";
#open(FILE, $filename)打开文件到句柄<FILE>中,注意更换路径
open(OUTFILE,">>","C:\\Documents and Settings\\Administrator\\桌面\\result.txt")||die"cannot open the file: $!\n";
my $firstline ;
foreach $des (@path){
#每次处理一个字符串后,回到文件的开头
seek FILE, 0, 0;
$firstline = <FILE>;
#直到读取文件结尾
while ( $firstline ){
#判断firstline中是否包含目的字符串 des
if( (index($firstline, $des) != -1) ){
#开始打印包含目的字符串 des 的第一行
print $firstline;
#输入到 OUTFILE 文件中
print OUTFILE $firstline;
#打印动作直到遇到文件结束
while( $firstline ) {
$firstline = <FILE> ;
print $firstline;
#输入到 OUTFILE 文件中
print OUTFILE $firstline;
#遇到结束符 termin
if( index($firstline, $termin) != -1 ){
last;
}
}
}#if( (index($firstline, $des) != -1) ){
$firstline = <FILE> ;
}#while ( $firstline ){
print "\n","\n";
print OUTFILE "\n","\n";
}#foreach $des (@path){
close FILE;
close OUTFILE;

浙公网安备 33010602011771号