linux-shell编程三剑客之--awk

本文深入探讨了awk命令的内置变量、语法特性和实用案例,包括如何使用awk进行文本处理、匹配特定行和计算数值总和,适用于shell脚本初学者及进阶用户。

tzk_shell三剑客之(awk)

awk内置变量

NF:一行的字段总数

NR:行号

FS:输入分隔符 --等同于 -F

OFS:输出分隔符 output field separate

注意语法:

1、自定义的变量,一般建议在BEGIN
2、; 表示执行多条命令
3、{命令}
4、引用自定义变量,不需要接$符号
5、print是一个输出的命令

awk的匹配:

匹配出行号是以5结尾的:

[root@sed ~]# awk -F: 'NR ~ /.*5/{print NR,$1}' /etc/passwd
5 lp
15 systemd-coredump
25 nginx

取出本机的ip地址:

[root@sed ~]# ip add|awk '/inet.*ens33/{print $2}'
192.168.0.18/24

取出ens33的网络流量(KB)

[root@sed ~]# ifconfig|awk 'NR==5||NR==7{print $5}'
622645750
8883745

使用shell变量,要用双引号“”

[root@sed ~]# name=robot
[root@sed ~]# cat /etc/passwd|awk -F: "/$name/{print \$1,\$3}"
robot 9925
robot1 9926
robot2 9927

自己遇到的经典面试题:

如果有第二列数字,怎么把它们加起来:

[root@mysql-bianyi ~]# cat tzk.txt 
1
2
3
4
5
[root@mysql-bianyi ~]# cat tzk.txt |awk 'BEGIN{n=0}{n+=$1}END{print n}'
15
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值