awk文件比对

文件以制表符\t分隔

1、将某几列作为主键key,对某列求和

1
awk '{sum[$1,$2]+=$3}END{for(c in sum){print c,sum[c] }}' 1.txt > 3.txt

2、两个文件比较 while((getline < “1.txt”)>0 //读到文件末尾

1
cat 2|awk -F"\t" 'BEGIN{while((getline < "1")>0) hash[$1$2]=$3}{if(hash[$1$2]-$3>1 || hash[$1$2]-$3<-1) print $0"|"hash[$1$2]}'

3、提取某列输出重复数据项

1
cat 1 |awk '{print $1}' |sort|uniq -c|awk '{if($1==2) print $0}'

4、在文件1不在文件2的数据项

1
cat 1 2 1|sort |uniq -c|awk '{if($1==2) print $0}'

5、找出2个文件差异项

1
cat 1.txt 2.txt |sort |uniq -u
踏浪 wechat
欢迎您扫一扫上面的微信公众号,订阅我的博客!
坚持原创技术分享,您的支持将鼓励我继续创作!