Linux的awk命令怎么使用
发表于:2025-01-18 作者:千家信息网编辑
千家信息网最后更新 2025年01月18日,今天小编给大家分享一下Linux的awk命令怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起
千家信息网最后更新 2025年01月18日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/passwd
awk的过滤使用方法
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安全错误
数据库的锁怎样保障安全
上海网络技术咨询服务报价表
与儿童有关的网络安全公益项目
数据库完成开户业务代码
龙之谷数据库app
数据库安全风险种类
我的世界生存服务器招管理员
软件开发模拟微信扫码
店铺管理软件开发小飞猪
如何进去服务器管理器
北京思极网络技术
2016服务器安全日志
深圳奥软网络技术有限公司
软件开发画界面软件
欧盟关税数据库TARIC
网络安全日宣传海报图片
雷神服务器加载到97
网站源码如何传到服务器
芝罘软件开发入门学习哪里好
服务器故障代码500是啥意思
网络技术重点知识归纳
饥荒服务器列表怎么关
车辆资源数据库
苹果无法连上服务器
公司工作室有多少服务器
网络技术大专学历
我的世界进入服务器出现未知错误
网络安全化信息小组
职业中学计算机网络技术教师
知网数据库表查重吗
github新华字典数据库