perl从指定的行到结尾读取文件

perl从指定的行到结尾读取文件,perl,Perl,我是perl新手。我试图读取一个大的逗号分隔文件,拆分并只获取一些列。我可以通过一些互联网帮助创建它,但我正在努力更改代码,以便从文件末尾的特定行开始读取。 我需要的是打开文件,开始读取第12行,拆分','抓取列0,2,10,11,并用'\t'连接这些需要的列 这是我的密码 #!/usr/bin/perl my $filename = 'file_to_read.csv'; open(FILER, $filename) or die "Could not read $filename."; op

我是perl新手。我试图读取一个大的逗号分隔文件,拆分并只获取一些列。我可以通过一些互联网帮助创建它,但我正在努力更改代码,以便从文件末尾的特定行开始读取。 我需要的是打开文件,开始读取第12行,拆分','抓取列0,2,10,11,并用'\t'连接这些需要的列

这是我的密码

#!/usr/bin/perl
my $filename = 'file_to_read.csv';
open(FILER, $filename) or die "Could not read $filename.";
open(FILEW, ">$filename.txt")     || die "couldn't create the file\n";
while(<FILER>) {
  chomp;
  my @fields = split(',', $_);
  print FILEW "$fields[0]\t$fields[3]\t$fields[10]\t$fields[11]\n";
}
close FILER;
close FILEW;

请指定一个变量来计算处理的行数,如
my$line\u count=0

在while循环的开始处,增加varialbe
$line\u count++


如果行数低于12,则跳过,即如果$line_count>12,则跳过下一步

与其跳过特定的行号(行号可能因文件而异),不如跟踪由
[标题]
[数据]
等标记的文件的当前部分

此解决方案保留一个状态变量
$section
,每当文件中遇到
[section]
标签时,该变量将更新为当前节名。对
数据
部分的所有内容进行总结和打印

列标题也可以做类似的事情,使用名称而不是数字来选择要输出的字段,但是我选择了降低复杂性

使用严格;
使用“全部”警告;
使用特征“说”;
my$filename='file_to_read.csv';

打开我的$fh,'检查
$的值。
。至少在12点之前不要做任何事情。可能重复的意思是只需添加行
next if$。<12;
咀嚼之前
你就很好了。看见
[Header]
GSGT Version: X
Processing Date:12/01/2010 7:20 PM
Content:
Num SNPs:
Total SNPs:
Num Samples:
Total Samples:
Sample:
[Data]

SNP Name,Chromosome,Pos,GC Score,Theta,R,X,Y,X Raw,Y Raw,B Allele Freq,Log R Ratio,Allele1 - TOP,Allele2 - TOP
1:10001102-G-T,1,10001102,0.4159,0.007,0.477,0.472,0.005,6281,126,0.0000,-0.2581,A,A
1:100011159-T-G,1,100011159,0.4259,0.972,0.859,0.036,0.822,807,3648,0.9942,-0.0304,C,C
1:10002775-GA,1,10002775,0.4234,0.977,1.271,0.043,1.228,809,5140,0.9892,0.0111,G,G