awk处理文件。本质上是把一个文件看成一个类似excel的文本表格。
awk处理多个文件。本质上是把某些需要查询的表格,先保存在关联数组里面。以待查询。
举例:
文件1
file1
sina.com 52.5
sohu.com 42.5
baidu.com 35
文件2
file2
www.news.sina.com sina.com 80
www.over.sohu.com baidu.com 20
www.fa.baidu.com sohu.com 50
www.open.sina.com sina.com 60
www.sport.sohu.com sohu.com 70
www.xxx.sohu.com sohu.com 30
www.abc.sina.com sina.com 10
www.fa.baidu.com baidu.com 50
www.open.sina.com sina.com 60
www.over.sohu.com sohu.com 20
存储表格1
awk '{ta[$1]=$2} END{ for(k in ta){print k, ta[k]}}' file1
sohu.com 42.5
sina.com 52.5
baidu.com 35
查询表格1,处理多文件
awk 'FNR==NR{ta[$1]=$2} NR>FNR{print $0, ta[$2]} ' file1 file2
www.news.sina.com sina.com 80 52.5
www.over.sohu.com baidu.com 20 35
www.fa.baidu.com sohu.com 50 42.5
www.open.sina.com sina.com 60 52.5
www.sport.sohu.com sohu.com 70 42.5
www.xxx.sohu.com sohu.com 30 42.5
www.abc.sina.com sina.com 10 52.5
www.fa.baidu.com baidu.com 50 35
www.open.sina.com sina.com 60 52.5
www.over.sohu.com sohu.com 20 42.5