awk命令

本文介绍如何利用Linux下的awk命令处理文件内容,包括格式化输出、条件筛选等高级技巧,并演示了如何从系统文件中抽取特定用户信息。

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

awk:报告生成器 格式化以后,美观的显示出来
which awk
ls –l /bin/awk
linux 上面默认使用 gawk
这里写图片描述
这里写图片描述
这里写图片描述

awk 处理机制
这里写图片描述

vim /mnt/awk-file
—>>This is awk test!
这里写图片描述
wak-file要是两行或者多行呢?实验一下.结果显示1[0]打印出全部内容,man awk
这里写图片描述
这里写图片描述

awk '{print FILENAME}' filename   ##filename有几行将打印出几个filename文件名
filename
filename

这里写图片描述

awk {print NR,NF} filename 

awk {print NR,NF} file 第一行3列;第二行1列
这里写图片描述

awk   'BEGIN{print "NAME"}'  输入开始打印内容NAME

awk ‘BEGIN{print “Username”}{print NR,NF,FILENAME}’ file
这里写图片描述

awk   'END{print "NAME"}'  输出开始打印内容NAME

awk ‘END{print “Username”}{print NR,NF,FILENAME}’ file

这里写图片描述

查找系统中可交互式登陆系统的所有用户并以表头Username,Uid打印出来,末尾说明All can login system by x11

第一步:交互登陆用户使用的是bin/bash

awk '/\<bin\/bash\>/{print}'   /etc/passwd  查找含bin/bash的行\<bin\/bash\>精确查找

这里写图片描述
第二步:过滤用户名和UID

awk -F : '/\<bin\/bash\>/{print $1,$3}' /etc/passwd

这里写图片描述

第三步:打印开头信息
这里写图片描述
打印末尾信息
这里写图片描述

awk过滤,方法大致同grep

查找passwd中以root开头的行

awk '/^root/' passwd 查找passwd中以root开头的行
awk '/root$/' passwd 查找passwd中以root结尾的行

这里写图片描述
查找系统用户所用目录不是home下的可交互式登陆用户

awk -F : '/\<bin\/bash\>/&&!/\<home\>/{print $1,$6}' /etc/passwd

这里写图片描述
打印/etc/passwd 中行首不是a-d的行

awk '/^[^a-d]/' {print} /etc/passwd 其实不加{print}的时候相当于过滤,结果都一样

这里写图片描述

~包含

awk -F : '$n~/root/{print}' passwd  passwd中第n列含root单词的行
awk -F : '$n!~/root/{print}' passwd  passwd中第n列不含root单词的行
awk -F : '$n~/root/{print $m}' passwd  passwd中第n列含root单词的行打印第m列

这里写图片描述

实验:打印team0的ip

ifconfig team0 | awk  '/inet\>/{print $6}'

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值