小编Sip*_*oon的帖子

在perl中解析一个巨大的文本文件

我有一个文本文件,分隔标签.它们可以达到1 GB.我将根据其中的样本数量具有可变数量的列.每个样本有八列.例如,sampleA:ID1,id2,MIN_A,AVG_A,MAX_A,AR1_A,AR2_A,AR_A,AR_5.其中ID1和id2是所有样本的共同点.我想要实现的是根据样本数将整个文件拆分为多个文件块.

ID1,ID2,MIN_A,AVG_A,MAX_A,AR1_A,AR2_A,AR3_A,AR4_A,AR5_A,MIN_B, AVG_B, MAX_B,AR1_B,AR2_B,AR3_B,AR4_B,AR5_B,MIN_C,AVG_C,MAX_C,AR1_C,AR2_C,AR3_C,AR4_C,AR5_C
12,134,3535,4545,5656,5656,7675,67567,57758,875,8678,578,57856785,85587,574,56745,567356,675489,573586,5867,576384,75486,587345,34573,45485,5447
454385,3457,485784,5673489,5658,567845,575867,45785,7568,43853,457328,3457385,567438,5678934,56845,567348,58567,548948,58649,5839,546847,458274,758345,4572384,4758475,47487
Run Code Online (Sandbox Code Playgroud)

这是我的模型文件的外观,我想将它们作为:

File A : 
ID1,ID2,MIN_A,AVG_A,MAX_A,AR1_A,AR2_A,AR3_A,AR4_A,AR5_A
12,134,3535,4545,5656,5656,7675,67567,57758,875
454385,3457,485784,5673489,5658,567845,575867,45785,7568,43853

File B:
ID1, ID2,MIN_B, AVG_B, MAX_B,AR1_B,AR2_B,AR3_B,AR4_B,AR5_B
12,134,8678,578,57856785,85587,574,56745,567356,675489
454385,3457,457328,3457385,567438,5678934,56845,567348,58567,548948

File C:

ID1, ID2,MIN_C,AVG_C,MAX_C,AR1_C,AR2_C,AR3_C,AR4_C,AR5_C
12,134,573586,5867,576384,75486,587345,34573,45485,5447
454385,3457,58649,5839,546847,458274,758345,4572384,4758475,47487.
Run Code Online (Sandbox Code Playgroud)

有没有比通过阵列更简单的方法?

我如何计算出我的逻辑是计算(标题数 - 2)并将它们除以8将得到文件中的样本数.然后遍历数组中的每个元素并解析它们.这样做似乎是一种乏味的方式.我很乐意知道任何更简单的方法来处理这个问题.

谢谢西普拉

perl

3
推荐指数
1
解决办法
2786
查看次数

使用Perl的DBI,如何加入fetchrow_arrayref的结果?

我是Perl的新手,我正在编写一个脚本来从数据库中获取一些行:

my @rows = $conn->fetchrow_array(1,2,3);
Run Code Online (Sandbox Code Playgroud)

结果将是三行单列.

12345
56789
12376
Run Code Online (Sandbox Code Playgroud)

我应该如何将他们加在一起呢 12345,56789,56789

我试过了,

my $list = join ",", @rows. 
Run Code Online (Sandbox Code Playgroud)

结果: ARRAY(0x14f6de0),ARRAY(0x1508a90),ARRAY(0x15014c0)

通过foreach循环只需用新行打印结果:

12345
56789
12376
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么 ?我有fetchrow_array错误的概念吗?

perl dbi

2
推荐指数
1
解决办法
534
查看次数

标签 统计

perl ×2

dbi ×1