awk 金典去除原理解析

本文涉及的产品
云解析DNS,个人版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介:

awk '!a$[$0]++' file 可以实现对file文件去除重复行,我的file文件内容为:

aaa

bbb

ccc

ddd

aaa

bbb

ccc

ddd

awk '!a[$0]++' file去重后:

aaa

bbb

ccc

ddd

要理解这个去重原理首先得明白以下几个知识点:

    1、a++与++a的区别: a++是先引用,再赋值,而++a则是先赋值,再引用。

    2、awk 的工作模式: awk 'pattern{action}' file 在awk中pattern=0为假,不执行{action} pattern 非0 为真,执行{action}

    3、在awk中,对于未初始化的数组变量,在进行数值运算的时候,会赋予初值0,因此a[$0]=0,++运算符的特性是先取值,后加1,因此Pattern等价于!0而0为假,!为取反,因此整个Pattern最后的结果为1,当awk再次读取到aaa的时候,a$[0]就是会1,取反后!1为假,pattern为假{action}则不执行。

    配图说明:

wKiom1gjVGWyfektAAANNV0IJys493.png

    实例演示:

            wKiom1gjVW3RtlW4AAAO15v4VfI106.png

    去重后:

            wKioL1gjVgjTLcR0AAATYQfxgOg732.png



本文转自 wangergui 51CTO博客,原文链接:http://blog.51cto.com/wangergui/1871302,如需转载请自行联系原作者

相关文章
|
2天前
|
存储 监控 NoSQL
MongoDB索引解析:工作原理、类型选择及优化策略
MongoDB索引解析:工作原理、类型选择及优化策略
|
1天前
|
存储 关系型数据库 MySQL
MySQL Change Buffer 深入解析:概念、原理及使用
MySQL Change Buffer 深入解析:概念、原理及使用
MySQL Change Buffer 深入解析:概念、原理及使用
|
2天前
|
存储 缓存 负载均衡
elasticsearch写入流程和请求检索流程原理全方位解析
elasticsearch写入流程和请求检索流程原理全方位解析
|
2天前
|
存储 并行计算 算法
深入解析Java并发库(JUC)中的Phaser:原理、应用与源码分析
深入解析Java并发库(JUC)中的Phaser:原理、应用与源码分析
|
1天前
|
缓存 关系型数据库 MySQL
MySQL Buffer Pool 解析:原理、组成及作用
MySQL Buffer Pool 解析:原理、组成及作用
|
1天前
|
存储 JSON NoSQL
|
1天前
|
存储 数据库 开发者
Elasticsearch中的三种分页策略深度解析:原理、使用及对比
Elasticsearch中的三种分页策略深度解析:原理、使用及对比
|
1天前
|
存储 缓存 监控
JVM中G1垃圾收集器:原理、过程和参数配置深入解析
JVM中G1垃圾收集器:原理、过程和参数配置深入解析
|
1天前
|
存储 算法 安全
深入解析RSA算法原理及其安全性机制
深入解析RSA算法原理及其安全性机制
|
1天前
|
存储 算法 安全
MD5哈希算法:原理、应用与安全性深入解析
MD5哈希算法:原理、应用与安全性深入解析

热门文章

最新文章

推荐镜像

更多