awk的使用

awk的格式

awk ’条件类型1{动作1}条件类型2{动作2}‘ filename
awk后面接两个单引号并加上大括号来设定对数据的处理动作。

awk的使用举例

wuze@wuze-virtual-machine:~/c++_project/01/001$ last -n 5
wuze     tty2         tty2             Fri Sep 23 12:40   still logged in
reboot   system boot  5.15.0-48-generi Fri Sep 23 12:38   still running
wuze     tty2         tty2             Thu Sep 22 12:52 - down   (09:51)
wuze     tty2         tty2             Thu Sep 22 12:48 - 12:52  (00:03)
wuze     pts/1        192.168.32.1     Tue Sep 20 21:24 - 21:47  (00:22)

wtmp begins Tue Sep 20 19:50:36 2022

执行命令

wuze@wuze-virtual-machine:~/c++_project/01/001$ last -n 5 | awk '{print $1 $3}'
wuzetty2
rebootboot
wuzetty2
wuzetty2
wuze192.168.32.1

wtmpTue
# 默认情况下是换行打印的 其中$1表示第一列 $3表示第三列
wuze@wuze-virtual-machine:~/c++_project/01/001$ last -n 5 | awk '{print $1 "\t" $3}'
wuze	tty2
reboot	boot
wuze	tty2
wuze	tty2
wuze	192.168.32.1
	
wtmp	Tue
# 这里要注意的是‘’会优先匹配‘’  所以在嵌套时 最好注意一下

awk处理行的操作:
NR 处理的哪一行
NF 这一行有多少数据
逻辑运算字符:

< = >= <= == !=

wuze@wuze-virtual-machine:~/c++_project/01/001$ last -n 3 | awk '{print $1"\tline:"NR"\tcol:"NF}'
wuze	line:1	col:10
reboot	line:2	col:10
wuze	line:3	col:10
	line:4	col:0
wtmp	line:5	col:7
# 注意这里引号容易打乱 命令用’‘ 字符串用“”

可以用逻辑运算字符,来断定执行某行的操作

wuze@wuze-virtual-machine:~/c++_project/01/001$ last -n 3 | awk 'NR==1{print $1 "\taaa"}\
> NR!=1{print $2 "\tbbb"}
> 
> '
wuze	aaa
system	bbb
tty2	bbb
	bbb
begins	bbb
# 当行数为1时打印第一列的第一行和aaa
当行数不为1时打印第二列其他行和bbb
uze@wuze-virtual-machine:~/c++_project/01/001$ last -n 3
wuze     tty2         tty2             Fri Sep 23 12:40   still logged in
reboot   system boot  5.15.0-48-generi Fri Sep 23 12:38   still running
wuze     tty2         tty2             Thu Sep 22 12:52 - down   (09:51)

wtmp begins Tue Sep 20 19:50:36 2022

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值