Shell脚本(篇六)

博客主要围绕awk工具展开,简述了其基本语法格式、常用内置变量及作用,介绍了awk处理文本时行前、行中、行后的表示方法,还给出了提取eth0网卡IPv4地址及掩码信息、找出特定UID用户等文本处理实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.简述awk工具的基本语法格式。

格式1: awk   [选项]   ‘[条件]{处理动作}’   文件列表
格式2: 命令  |  awk   [选项]   ‘[条件]{处理动作}’

2.简述awk工具常用的内置变量、各自的作用。

FS:保存或设置字段分隔符
$n:即$1、$2、$3……,表示指定分隔的第几个字段
$0:保存当前读入的整行文本内容
NF:记录当前处理行的字段个数(列数)
NR:记录当前已读入行的数量(行数)
FNR:保存当前处理行在原文本内的序号(行号)
FILENAME:保存awk 当前处理的(文件名)
ENVIRON:调用Shell环境变量,格式:ENVIRON["变量名"]

3.awk处理文本时,行前、行中、行后这三个环节是如何表示的?

BEGIN{ } 行前处理:awk没有读入行之前 要执行的动作; 一般对数据作初始化操作,可以单独使用。
{ } 行处理:对awk读入的每一行进行处理,可以单独使用。
END{ }行后处理:awk 把所有的行都处理完后要执行的动作,一般输出数据处理的结果。可以单独使用。

4.提取当前eth0网卡的IPv4地址及掩码信息。

查看测试文本:
[root@svr5 ~]# ip add list eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:64:88:8e brd ff:ff:ff:ff:ff:ff
    inet 192.168.4.55/24 brd 192.168.4.255 scope global eth0
    inet 192.168.4.5/24 brd 192.168.4.255 scope global secondary eth0
    inet6 fe80::20c:29ff:fe64:888e/64 scope link 
       valid_lft forever preferred_lft forever
提取IPv4地址及掩码信息的操作及效果:
[root@svr5 ~]# ip add list eth0 | awk '/\<inet\>/{print $2}'
192.168.4.55/24
192.168.4.5/24

5.找出UID位于10~20之间的用户,输出用户名及对应的UID。

[root@svr5 ~]# awk -F: '$3>=10 && $3<=20{print $1":"$3}' /etc/passwd
uucp:10
operator:11
games:12
gopher:13
ftp:14 

6.找出UID与GID不同的用户,列出用户名及对应的UID、GID。

[root@svr5 ~]# awk -F: '$3!=$4{print $1":"$3":"$4}' /etc/passwd 
adm:3:4
lp:4:7
sync:5:0
shutdown:6:0
halt:7:0
mail:8:12
uucp:10:14
operator:11:0
games:12:100
gopher:13:30
ftp:14:50
rtkit:499:497
saslauth:498:76
pulse:497:496
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值