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