文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Linux的awk命令怎么使用

2023-06-28 16:47

关注

今天小编给大家分享一下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,默认输出每行的内容)】

Linux的awk命令怎么使用

搜索/etc/passwd有root关键字的所有行,并显示对应的shell

 awk` `-F: ``'/root/ {print $7}'` `/etc/passwd

Linux的awk命令怎么使用

统计/etc/passwd:文件名,每行的行号,每行的列数,对应的完整行内容:

 awk` `-F ``':'` `'{print "filename:" FILENAME ",linenumber:" NR ",columns:" NF ",linecontent:"$0}'` `/etc/passwd

Linux的awk命令怎么使用

使用printf替代print,可以让代码更加简洁,易读

 awk` `-F: ``'{printf ("filename:%10s, linenumber:%3s,column:%3s,content:%3f\n",FILENAME,NR,NF,$0)}'` `/etc/passwd

Linux的awk命令怎么使用

打印/etc/passwd/的第二行信息

 awk` `-F: ``'NR==2{print "filename: "FILENAME, $0}'` `/etc/passwd

Linux的awk命令怎么使用

awk的过滤使用方法

 ls` `-lF | ``awk` `'/^d/'

Linux的awk命令怎么使用 指定特定的分隔符,查询第一列

 awk` `-F ``":"` `'{print $1}'` `/etc/passwd

Linux的awk命令怎么使用 指定特定的分隔符,查询最后一列

 awk` `-F ``":"` `'{print $NF}'` `/etc/passwd

Linux的awk命令怎么使用 指定特定的分隔符,查询倒数第二列

 awk` `-F ``":"` `'{print $NF-1}'` `/etc/passwd

Linux的awk命令怎么使用 获取第12到31行的第一列的信息

 awk` `-F ``":"` `'{if(NR12) print $1}'` `/etc/passwd

Linux的awk命令怎么使用

多分隔符的使用:

 [root@localhost ftl]``# awk -F "[/]" 'NR == 4 {print $0,"\n",$1}' /etc/passwd``这里以/为分隔符,多个分隔符利用[]然后在里面写分隔符即可

Linux的awk命令怎么使用

添加了BEGIN和END

 [root@localhost ftl]``# cat /etc/passwd | awk -F: 'BEGIN{print "name, shell"} {print $1,$NF} END{print "hello world"}'

Linux的awk命令怎么使用

查看最近登录最多的IP信息

 [root@localhost ftl]``# last | awk '{S[$3]++} END{for(a in S ) {print S[a],a}}' |uniq| sort -rh

Linux的awk命令怎么使用

利用正则过滤多个空格

 [root@localhost ~]``# ifconfig |grep eth* | awk -F '[ ]+' '{print $1}'

Linux的awk命令怎么使用

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{}可以有多个语句,以;号隔开

Linux的awk命令怎么使用

统计显示/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命令怎么使用”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-人工智能
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯