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

被折叠的 条评论
为什么被折叠?



