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不停累加,最后输出累加的数组值。

刚开始接触可能会理解起来有点费劲,但使用起来还是很方便的,勤加练习吧,毕竟熟能生巧
    原文作者:v_笑
    原文地址: https://blog.csdn.net/qq_17088237/article/details/89669793
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞