- 论坛徽章:
- 0
|
本帖最后由 linghu002127 于 2011-10-16 20:44 编辑
又要麻烦各位了,实在也是搞了好久没搞定~~
帖子新手求助:如何提取相同文件名的数据行并存入相应文件~~
中
对于问题1,我手上有快100个这样的文件(文件格式*.bed),
我想批量处理他们,都进行相同的操作:就是在每个文件的第4,5列之间插入一列字符 '0’.
每个文件数据都是:
chr10 42963917 42963941 U0 -
chr4 70445617 70445641 U0 +
chr2 156399713 156399737 U0 -
chr4 77168812 77168836 U0 -
chr2 229229269 229229293 U0 +
chr3 137227198 137227222 U0 +
chrX 131453155 131453179 U0 +
chr2 203485084 203485108 U0 -
.............
处理后为:
chr10 42963917 42963941 U0 0 -
chr4 70445617 70445641 U0 0 +
chr2 156399713 156399737 U0 0 -
chr4 77168812 77168836 U0 0 -
chr2 229229269 229229293 U0 0 +
chr3 137227198 137227222 U0 0 +
chrX 131453155 131453179 U0 0 +
chr2 203485084 203485108 U0 0 -
................
自己写的代码如下:- #!/usr/bin/perl
- use strict;
- use warnings;
- while (my $filename = glob 'D:\data\tem1\*.bed') {
- #原始文件存在tem1文件夹下
- open (FILE,"$filename")or die $!;
- open (OUT, '+>','D:\data\tem2'.$filename)or die $!;
- #处理结果文件存在tem2文件夹下,文件名对应相同
- #while部分对数据进行处理
- while (<FILE>){
- chomp;
- my @items = split("\t",$_);
- my $str=join("\t",@items[0..3],"0",$items[4]);
- print OUT "$str\n";
- }
-
- close FILE;
- close OUT;
-
- }
-
复制代码 但是一直得不到想要的结果,不是报错就是无输出,怎么改都不行~~ |
|