需求:对比2个文件,找出仅存在文件A中的行
方法1
cat fileA | while read line
cat fileB|grep $line
do
get=
if [[ x"$get" == x ]] ;then
echo $line >> diff.log
fi
done
- 方法2
方法2:
awk '{if(ARGIND==1){val[$0]}else{if($0 in val) delete val[$0]}}'END'{for(i in val) print i}' fileA fileB
- 效率
方法2的效率远高于方法1,处理300w数据,方法1天级,方法2秒级。原因:方法2,awk将所有数据装入内存计算