awk匹配

awk 匹配

1.匹配交集项

1 > 如果file1、file2中,2个文件的第一列值相同,输出第2个文件的所有列

      awk 'NR==FNR{a[$1]=1}NR>FNR&&a[$1]>0{print $0}'  file1(字段:QQ) file2(字段:QQ 点券值 ) > file3

   

   注意:数据量如果达到4Gb以上或者行数达到一亿级别,建议将file2进行split分割,否则就算是32G的内存的机器都会被吃掉;

2. > 如果file1、file2中,2个文件的第一列第二列值相同,输出第2个文件的所有列

    awk 'NR==FNR{a[$1" "$2]=1}NR>FNR&&a[$1" "$2]>0{print $0}'  file1 file2> file3

    

2、匹配非交集项

1 > 针对2个文件的第一列做比较,输出:在file2中去除file1中第一列出现过的行

    awk 'NR==FNR{a[$1]=1}NR>FNR&&a[$1]<1 {print $0}'  file1 file2 > file3

   

方法二 :

    cat file1 file2|sort |uniq -d > jiaoji.txt

   cat file2 jiaoji.txt  |sort |uniq -u > file3

猜你喜欢

转载自www.cnblogs.com/qq521/p/12558514.html
awk
今日推荐