awk统计重复列

1. awk是什么?

AWK是一个优良的文本处理工具,Linux及Unix环境中现有的功能最强大的数据处理引擎之一。这种编程及数据操作语言(其名称得自于它的创始人阿尔佛雷德·艾侯、彼得·温伯格和布莱恩·柯林汉姓氏的首个字母)的最大功能取决于一个人所拥有的知识。awk经过改进生成的新的版本nawk,gawk,现在默认linux系统下日常使用的是gawk,用命令可以查看正在应用的awk的来源(ls -l /bin/awk )

2. 原理

依次处理文件的每一行,并读取里面的每一个字段,处理格式相同的文本文件非常方便

3. 使用介绍
awk '{动作}' 文件名 ### 
### 事例 $0表示当前行,下面命令表示逐行读取a.txt文件并打印每一行
awk '{print $0}' a.txt
4. 处理标准输入
echo 'this is a test' | awk '{print $0}' 
5. 指定分隔符

awk会根据空格和制表符,将每一行分成若干字段,依次用$1、$2、$3代表第一个字段、第二个字段、第三个字段等等,$0表示当前整行
field-separator fs 映射为-F

echo 'hello,world' | awk -F ',' '{print $1}'
如果要用程序解决的话还要编写程序,再读取文件,费时费力,AWK可以方便快速的解决问题
cat log.txt | awk '{a[$1]++}END{for(i in a){print i,a[i]}}' 
思路

将文本文本中要统计的列作为key,同样的key不停累加,最后输出累加的数组值。

刚开始接触可能会理解起来有点费劲,但使用起来还是很方便的,勤加练习吧,毕竟熟能生巧☺☺
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值