Linux的awk命令怎么使用
发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,今天小编给大家分享一下Linux的awk命令怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起
千家信息网最后更新 2025年11月08日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安全错误
数据库的锁怎样保障安全
网络技术与应用实验
米哈游注册失败网络安全隐患
网络安全审查最新办法
图片数据库解决的问题
商务厅网络安全
中华人民网络安全
目前常用的软件开发方法有
杭州今元网络技术
网络安全常见七种问题
计算机应用专业有软件开发吗
吉林新一代网络技术服务推广
数据库div函数
联想sr630服务器
软件开发用例图要素 图
软件开发前端怎么样学的好
关于国家网络安全工作
惠州聊天软件开发报价
测试占软件开发成本
用电脑单机攻击器能攻破服务器吗
京帮帮软件开发者
计算机网络技术发什么毕业证
服务器所有网站被挂
数据库设置当前时间字段
网络安全知识有哪些.
学哲学的网络安全总监
北京飞度网络技术有限公司
开票提示更新数据库失败
软件开发 库和包的区别
联系不到服务器怎么还可以听小说
福州电商系统软件开发