使用 awk for循环 和 数组 实现 去重功能:(sort 、uniq、tr 功能)

本文探讨如何使用awk的for循环和数组功能实现文件内容的去重与统计。通过示例解释了数组在awk中的自加运算特性,即便元素不存在也会自动创建并视为0。此外,文章提供了利用awk、sort和uniq命令处理IP统计的场景,展示了awk内置变量NF的使用。
摘要由CSDN通过智能技术生成

文章目录

 

这个是我自己写的 全部关于 awk学习的目录导航 ,感兴趣的可以看看。

 


 
        本章直接使用 awk 中的for循环 和 数组 实现 去重 and 统计 功能!

       

在学习之前,先来看一个知识点:

首先,我们将 变量a的值设为1,进行加法计算,每次自加后,再打印a的值:

root@zhengzelin:~# awk 'BEGIN{a=1;print a;a++;print a}'
1
2
root@zhengzelin:~# awk 'BEGIN{a=1;print a;a=a+1;print a}'
1
2

这并不难理解,因为a的值在这里是一个数字,如果a的值是一个字符串呢?是否也可以进行自加运算?

root@zhengzelin:~# awk 'BEGIN{a="test";print a;a=a+1;print a;a++;print a}'
test
1
2

如此可知,当"变量的值为字符串"的时候,也"可以进行自加运算",不过,"字符串会被当成数字0"来进行运算

数组那篇文章中 中我们说到过,当我们 “直接引用一个数组中不存在的元素的时候,awk会自动创建该元素,并且为其赋值为空字符串”!

那么,当 "空字符串(数组中不存在的元素)" 参与运算的时候,也会被当成"数字0"吗?

eg:

root@zhengzelin:~# awk 'BEGIN{a=" ";print a;a+=1;print a;a++;print a}'
   ——>  # "这是第一个输出结果print a,清楚的看到这里输出的是空字符串"          
1  ——>  # "这里输出的是 “a
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值