比较2个文件一行
问题描述:
线假设我有2个文件,这样的:比较2个文件一行
文件1:
Verrucomicrobiaceae
Porphyromonadaceae
Clostridium
Verrucomicrobiaceae
Clostridium
Bacteroidaceae
Clostridium
Verrucomicrobiaceae
Verrucomicrobiaceae
Verrucomicrobiaceae
Verrucomicrobiaceae
Clostridium
文件2:
Verrucomicrobiaceae
Porphyromonadaceae
Verrucomicrobiaceae
Porphyromonadaceae
Verrucomicrobiaceae
Verrucomicrobiaceae
Verrucomicrobiaceae
Verrucomicrobiaceae
我想计算的出现如下:
- 文件中行数的发生次数1和2是相同的
- 文件1和文件2中的行不同的发生次数
- 文件1中的行具有字符串而文件2中的同一行没有任何内容的发生次数(空白)
- 号发生率,其中在文件2行有一个字符串,而在文件1的同一行无关(空白)
我试图用comm
,cmp
和diff
,却是不能。做那个任务。 有没有可以做到这一点的任何Linux命令?
答
这足够专业化,以至于使用标准工具可能不容易。我会写一个程序做比较,就像在Perl:
#!/usr/bin/perl
open(IN1, "< file1");
open(IN2, "< file2");
$count1 = $count2 = $count3 = $count4 = 0;
while(<IN1>) {
$line1 = $_;
$line2 = <IN2>;
$count1++ if($line1 eq $line2);
$count2++ if($line1 ne $line2);
$count3++ if($line1 ne "" && $line2 eq "");
$count4++ if($line1 eq "" && $line2 ne "");
}
print "$count1 $count2 $count3 $count4\n";
没有错误检查可言,假定这两个文件是相同的长度,...
+0
您好,感谢您的帮助,代码运行良好,只是空行与“\ n”匹配而不是“”。 – Bioinfoguy 2013-02-12 14:21:45
一个简单的'awk'脚本会做,例如。 – lynxlynxlynx 2013-02-11 19:10:05