作者 主題: 關於PERL 檔案比對  (閱讀 3384 次)

0 會員 與 1 訪客 正在閱讀本文。

hallohallo

  • 憂鬱的高中生
  • ***
  • 文章數: 134
    • 檢視個人資料
關於PERL 檔案比對
« 於: 2010-08-06 08:36 »
小弟寫了一PERL script 去比對兩個檔案,小弟覺得這個寫法應該可以改善,但是不知如何改好
所以想請高手幫幫忙。因為這個程式會製造出很多檔案,但是我再把這些刪除。我是希望可以就
修改同一個檔案就好了[attachment=1][attachment=2]
在OLDNewSanger.fasta裡面有54963行
在NewDataSanger.fasta裡面有4813行
再來就是在是在NewSanger.fasta裡的一定會出現在OLDNewSanger.fasta裡面
所以我希望找的是不在NewSanger.fasta但卻在OLDNewSanger.fasta裡面的資料
#!/usr/bin/perl

open(REFILE,"</home/cchiu/NewDataSanger.fasta");
my @LINES = <REFILE>;
close(REFILE);


my $x =0;

my $j = 1;
foreach my $lines (@LINES) {
        chomp $lines;
#for ($x=0; $x<=scalar(@NewData); $x++) {
open(PFILE, "<deltest/OLDNewSanger.fasta.$x");
`grep -v "$lines" deltest/OLDNewSanger.fasta.$x > deltest/OLDNewSanger.fasta.$j`;
$x++;
$j++;
close(PFILE);
}
my $k = $j -1;
`mv deltest/OLDNewSanger.fasta.$k deltest/NewSanger.fasta`;
`rm -f deltest/OLDNewSanger.fasta.*`;