Linux的awk命令怎么使用
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,今天小编给大家分享一下Linux的awk命令怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起
千家信息网最后更新 2026年11月01日Linux的awk命令怎么使用
今天小编给大家分享一下Linux的awk命令怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

awk是一款文本分析工具awk相对于grep、sed来说显得尤为强大,awk语言的最基本功能是在文件或者字符串中基于指定规则浏览和抽取信息。
awk内置变量
ARGC 命令行参数个数``ARGV 命令行参数排列``ENVIRON 支持队列中系统环境变量的使用``FILENAME ``awk``浏览的文件名``FNR 浏览文件的记录数``FS 设置输入域分隔符,等价于命令行 -F选项``NF 浏览记录的域的个数``NR 已读的记录数``OFS 输出域分隔符``ORS 输出记录分隔符``RS 控制记录分隔符``$0变量是指整条记录。$1表示当前行的第一个域,$2表示当前行的第二个域,......以此类推。 $NF是number finally,表示最后一列的信息,跟变量NF是有区别的,变量NF统计的是每行列的总数
常用的命令展示
awk擅长列输出
搜索/etc/passwd有root关键字的所有行
awk` `'/root/'` `/etc/passwd` `【这种是pattern的使用,匹配了pattern(这里是root)的行才会执行action(没有指定action,默认输出每行的内容)】

搜索/etc/passwd有root关键字的所有行,并显示对应的shell
awk` `-F: ``'/root/ {print $7}'` `/etc/passwd统计/etc/passwd:文件名,每行的行号,每行的列数,对应的完整行内容:
awk` `-F ``':'` `'{print "filename:" FILENAME ",linenumber:" NR ",columns:" NF ",linecontent:"$0}'` `/etc/passwd使用printf替代print,可以让代码更加简洁,易读
awk` `-F: ``'{printf ("filename:s, linenumber:%3s,column:%3s,content:%3f\n",FILENAME,NR,NF,$0)}'` `/etc/passwd打印/etc/passwd/的第二行信息
awk` `-F: ``'NR==2{print "filename: "FILENAME, $0}'` `/etc/passwdawk的过滤使用方法
ls` `-lF | ``awk` `'/^d/'
指定特定的分隔符,查询第一列
awk` `-F ``":"` `'{print $1}'` `/etc/passwd指定特定的分隔符,查询最后一列
awk` `-F ``":"` `'{print $NF}'` `/etc/passwd指定特定的分隔符,查询倒数第二列
awk` `-F ``":"` `'{print $NF-1}'` `/etc/passwd获取第12到31行的第一列的信息
awk` `-F ``":"` `'{if(NR12) print $1}'` `/etc/passwd多分隔符的使用:
[root@localhost ftl]``# awk -F "[/]" 'NR == 4 {print $0,"\n",$1}' /etc/passwd``这里以/为分隔符,多个分隔符利用[]然后在里面写分隔符即可添加了BEGIN和END
[root@localhost ftl]``# cat /etc/passwd | awk -F: 'BEGIN{print "name, shell"} {print $1,$NF} END{print "hello world"}'查看最近登录最多的IP信息
[root@localhost ftl]``# last | awk '{S[$3]++} END{for(a in S ) {print S[a],a}}' |uniq| sort -rh利用正则过滤多个空格
[root@localhost ~]``# ifconfig |grep eth* | awk -F '[ ]+' '{print $1}'awk编程–变量和赋值
除了awk的内置变量,awk还可以自定义变量, awk中的循环语句同样借鉴于C语言,支持while、do/while、for、break、continue,这些关键字的语义和C语言中的语义完全相同。
统计某个文件夹下的大于100k文件的数量和总和
ls` `-l|``awk` `'{if($5>100){count++; sum+=$5}} {print "Count:" count,"Sum: " sum}'` `【因为``awk``会轮询统计,所以会显示整个过程】``ls` `-l|``awk` `'{if($5>100){count++; sum+=$5}} END{print "Count:" count,"Sum: " sum}'` `【天界END后只显示最后的结果】 备注:count是自定义变量。之前的action{}里都是只有一个print,其实print只是一个语句,而action{}可以有多个语句,以;号隔开统计显示/etc/passwd的账户
awk` `-F: ``'{count++;} END{print count}'` `/etc/passwd` `cat` `/etc/passwd``|``wc` `-l``awk` `-F ``':'` `'BEGIN {count=0;} {name[count] = $1;count++;}; END{for (i = 0; i 通常,awk是以文件的一行为处理单位的。awk每接收文件的一行,然后执行相应的命令,来处理文本。以上就是良许教程网为各位朋友分享的Linux系统相关内容。想要了解更多Linux相关知识记得关注公众号"良许Linux",或扫描下方二维码进行关注,更多干货等着你!以上就是"Linux的awk命令怎么使用"这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注行业资讯频道。
分隔符
变量
文件
命令
信息
内容
知识
统计
篇文章
浏览
输出
关键
关键字
多个
更多
语句
语言
查询
一行
个数
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
天津市摩尔互联网科技
科技企业和互联网企业
互联网 科技创新
美国互联网黑科技
西安互联网科技公司
融贸通互联网科技
互联网科技视频素材
海南购全球互联网科技
富国互联网科技创新基金
济南华为互联网科技产业总部基地
福州新华互联网科技学校 知乎
重庆互联网医院沙龙医盟信息科技
深圳市罗太互联网科技有限公司
威龙国际互联网科技公司
互联网科技如何创业
皮皮虾互联网科技有限公司
互联网科技股为什么大涨
新氧科技和美国互联网有关系吗
萌小萌互联网科技河南有限公司
东风日产互联网科技公司叫什么
花魁咖啡
互联网金融科技
互联网 卓越科技
融势互联网科技
伴你行互联网科技有限公司
云创客互联网科技公司
须眉科技是互联网公司吗
高科技互联网套路
广州富喜互联网络科技
容联科技互联网电商