CC00008.LinuxShell——|Linux&Shell&字符截取和替换命令.V06|——|awk内置变量|

一、awk内置变量
作用
$0代表目前awk所读入的郑航数据,
我们已知awk是一行一行读入数据的,$0就代表当前读入行的整行数据
$n代表目前读入行的第n个字段
NF当前行拥有的字段(列)总数
NR当前awk所处理的行,是总数据的第几行
FS用户定义分割符,awk的默认分隔符是任何空格,
如果想要使用其他分割符(如:)就需要FS变量定义
ARGC命令行参数个数
ARGV命令行参数数组
FNR当前文件中的当前记录数(对输入文件起始为1)
OFMT数值的输出格式(默认%.6g)
OFS输出字段的分割符(默认为空格)
ORS输出记录分割符(默认为换行符)
RS输入记录分割符(默认为换行符)
二、awk内置变量实验
### --- 查询可以登录的用户的用户名和UID

[root@localhost ~]# cat /etc/passwd | grep "/bin/bash" | awk '{FS=":"} {printf $1 "\t" $3 "\n"}'
root:x:0:0:root:/root:/bin/bash
### --- 这里“:”分隔符生效了,可是第一行却没有起作用,原来我们忘记了“BEGIN”条件,那么再来试试:

[root@localhost ~]# cat /etc/passwd | grep "/bin/bash" | awk 'BEGIN {FS=":"} {printf $1 "\t" $3 "\n"}'
root    0
### --- 长BEGIN变量参数
~~~     解释下 awk 命令
~~~     开始执行{分隔符是“:”} {输出第一字段和第三字段 输出行号(NR 值) 字段数(NF 值)}

[root@localhost ~]#  cat /etc/passwd | grep "/bin/bash" | awk 'BEGIN {FS=":"} {printf $1 "\t" $3 "\t 行号:" NR "\t 字段数:" NF "\n"}'
root    0    行号:1    字段数:7
root 0      行号:1        字段数:7
user1 501   行号:2        字段数:7
### --- 如果我只想看看 sshd 这个伪用户的相关信息,则可以这样使用:
~~~     注:可以看到 sshd 伪用户的 UID 是 74,是/etc/passwd 文件的第 28 行,此行有 7 个字段

[root@localhost ~]# cat /etc/passwd | awk 'BEGIN {FS=":"} $1=="sshd" {printf $1 "\t" $3 "\t 行号:"NR "\t 字 段数:"F "\n"}'
sshd    74   行号:17   字 段数:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yanqi_vip

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值