awk的学习笔记

awk编程能力强大,文本处理能力突出。
首先,来看使用awk的一个例子:
比如,列出最常用的五个历史命令:
结合其他命令,我们给出结果:
awk ‘{print $1}’ ~/.bash_history | sort | uniq -c | sort -rn | head -n 5
从这个例子可以看出,awk确实神奇,好用。是得好好学习一番了。awk要学习以下要点:

首先准备一个材料,xinxi.txt
xinxi.txt
(1)print命令
print打印指定部分
例如:
awk '{print $0}‘ xinxi.txt
#打印xinxi.txt
awk01
print命令也可以用来打印匹配的某一行,比如:awk ‘/dmy/ {print}’ xinxi.txt 等同于awk ‘/dmy/’ xinxi.txt
awk02
print更强大的是可以打印需要的某几列,比如要打印name和score,就应该这样:
awk ‘{print $1,$6}’ xinxi.txt
awk03
(2)分隔符
默认分隔符是空格,如果需要改变,就要用-F指定,比如要打印/etc/passwd的所有用户,awk -F":" ‘{print $1}’ /etc/passwd ,比较特殊的是,awk以双引号为分隔符时候,这样写:
awk -F ’ " ’ ‘{print $2}’ access.log
awk04
(3)NF参数表示每行有几个字段
比如,awk ‘{print NF}’ xinxi.txt ,可以查看xinxi.txt每行有7个字段
awk05
使用 awk -F: ‘NF==5 {print }’ xinxi.txt 显示只有5个字段的行
没有打印结果,这是因为xinxi.txt字段都是7

(4)NR参数表示行号,比如,要打印xinxi.txt所有行,每行前面加行号,就应该这样写:
awk ‘{print NR,$0}’ xinxi.txt
awk06
再举个例子,要同时打印xinxi.txt的第3行和第4行,就要这样写:
awk ‘NR3||NR4 {print}’ xinxi.txt
awk07
(5)取某个列中的最大值
比如,要取xinxi.txt中height的最大值,可以这样写:
awk ‘BEGIN {max=0} {if ($4+0>max+0) {max=$4;couter=$0}} END {print couter}’ xinxi.txt
awk08
(6)求某一列的总和和平均值
求总和,比如第六列score的总和,可以这样写:awk ‘{sum+=$6} END {print “sum=”,sum}’ xinxi.txt
awk09
要求平均值,只需要总和初以行数,sum/(NR-1)就可以
awk ‘{sum+=KaTeX parse error: Expected 'EOF', got '}' at position 2: 6}̲ END {print "av…i}}’
awk12
(8)awk在运维工作中的使用例子
a.查看机器的ip列表
ifconfig -a | awk ‘/Bcast/ {print $2}’|awk -F: ‘{print $2}’
awk11
(b)统计所有状态码为 404 的请求
awk ‘($9~/404/) {print $9,$7}’ access.log | sort | uniq
awk13
感悟:awk知识点太多,太强大,今天先学习到这里,后面继续!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
B站上的韩顺平老师的《Linux学习笔记》系列课程非常值得推荐。通过这个课程,我学到了很多关于Linux操作系统的知识和技能。 首先,韩老师在课程中详细介绍了Linux的基本概念和特点。我清楚地了解到Linux是一个开源的操作系统,具有稳定性、安全性和可定制性强的特点。这让我对Linux有了更深入的理解,也更有信心去学习和使用它。 其次,韩老师从基础开始,逐步讲解了Linux的安装和配置。他用简单明了的语言和实际操作的示范,帮助我了解了如何在虚拟机上安装Linux系统,并设置网络、用户账户、文件系统等。这为我后续的学习和实践打下了坚实的基础。 此外,韩老师还讲解了Linux的常用命令和工具。他详细介绍了常用的文件和目录操作命令,比如cd、ls、mkdir、cp等。同时,他还讲解了grep、sed、awk等强大的文本处理工具的使用方法。这些内容帮助我更加高效地进行文件管理和数据处理。 最后,韩老师还介绍了Linux的网络管理和安全防护。他讲解了如何配置网络连接、使用ssh远程登录以及设置防火墙等内容。这些知识对我了解网络和保护系统安全非常有帮助。 总的来说,韩顺平老师的《Linux学习笔记》课程非常实用,对于初学者来说是入门学习Linux的好选择。他通过深入浅出的讲解和丰富的实操示范,让我可以轻松地学习Linux的基本知识和操作技巧。我相信通过学习这个课程,我会在Linux领域有更进一步的发展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值