现在的位置: 首页 > 综合 > 正文

awk 两个文件比较出现问题

2018年05月28日 ⁄ 综合 ⁄ 共 804字 ⁄ 字号 评论关闭

awk 比较两个文件的异同的时候经常会用到

awk ‘{if(NR==FNR)(a[$0]=1)if(FNR!=NR){if(a[$0]!=1)print $0}}’ x1 x2

刚发现,这个东东, 要保证x1 x2 是有序的。

贴上来一个awk 脚本

防止以后忘了。 刚写的 用来分割不同文件的

awk 'BEGIN{
    a=""
    b=0;
    filehead="fingerprint"
    filenum=1
    cnum=1
}
{
 if(a==""){
        a=$1
 }
 else if(a==$1)
 {
        c[cnum]=$0;
        cnum=cnum+1
 }
 else if(a!=$1){
        b=b+1;
        if(b>100000){
                filename = filehead"_"filenum
                for (i=1;i<cnum;i++){
                        print c[i] > filename
                }
                filenum=filenum+1
                cnum=1
                c[cnum]=$0
                cnum=2
                b=0
                a=$1
        }
        else{
                c[cnum]=$0;
                cnum=cnum+1;
                a=$1
        }
 }
}END{
    filename = filehead"_"filenum
    for (i=1;i<cnum;i++){

print c[i] > filename
   }}' fingerprint.new1

不是那么简洁 ,先用着吧

今天 导入tair 

阿里的东西 真心说不上喜欢, 你说他好,他缺少好多支持,你说他不好,你又找不到过硬的理由。

就这样吧。

=====================================分割线

awk 取交集 比read line 要快1000倍

【上篇】
【下篇】

抱歉!评论已关闭.