目前有 A B 两个文件
A 文件结构如下
aasdad11k1
dddasda113
oadap123ka
12321312aa
B 文件结构如下
kkooasda11
aasdad11k1
asdad11111
ooooo12312
asdada1312
AB 两个文件都是写\n 换行,每行都是以 字符+数字 组成,并且长度固定 现在想获取 A 里面的文件内容是否在 B 里面,如果在则输出这一行。
AB 两个文件大小都在 1000 万行
用 AWK 命令
awk 'NR==FNR{x[$0];next}{for(i in x)if($0~i)print}' a b > result
这个效率略低,目前代码如下
String b=null;
int i=0;
while ((str = bufferedReader.readLine()) != null){
b[i]=str;
i++;
}
while ((str = bufferedReader_a.readLine()) != null){
for (int m=0;m<b.length;m++){
if (str.equals(b[m])){
bw.write(str);
break;
}
}
}
bw.close();
fw.close();
速度太慢了. 在不考虑切分文件的情况下,有算法可以处理这类需求吗?