频道栏目
首页 > 资讯 > Linux > 正文

Linux文本处理三剑客-甜味拾荒者-51CTO博客

19-05-06        来源:[db:作者]  
收藏   我要投稿

awk是行处理器: 相比较屏幕处理的优点,在处理庞大文件时不会出现内存溢出或是处理缓慢的问题,通常用来格式化文本信息 报告工具<>1.awk:一次处理一行<>2.print:输出打印 printf:格式化输出<>3.%c :字符<>4.NR :record number :行号<>5.awk处理过程 :依次对每一行进行处理,然后输出<>6.awk命令形式: awk [-F|-f|-v] ‘BEGIN{} //{command1;command2} END{}’ file<><>7.特殊要点:<>Linux文本处理三剑客<>Linux文本处理三剑客

~ 匹配,与==相比不是精确比较

匹配时表示1个或1个以上

/[0-9][0-9]+/ 两个或两个以上数字

//不输出passwd的内容,而是输出相同个数的空行,进一步解释了awk是一行一行处理文本

//将每一行的前二个字段,分行输出,进一步理解一行一行处理文本

-f指定脚本文件

awk 'BEGIN{X=0} /^$/{ X+=1 } END{print "I find",X,"blank lines."}' test

-F指定分隔符

awk -F":" '{print "Username:" $1 "\t\t Uid:" $3 }' /etc/passwd //自定义输出

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

//显示每行有多少字段

awk -F: '{print $NF}' /etc/passwd //将每行第NF个字段的值打印出来

awk -F: 'NF==4 {print }' /etc/passwd //显示只有4个字段的行

awk -F: 'NF>2{print $0}' /etc/passwd //显示每行字段数量大于2的行

awk '{print NR,$0}' /etc/passwd

cat -n /etc/passwd

//输出每行的行号

awk -F: '{print NR,NF,$NF,"\t",$0}' /etc/passwd //依次打印行号,字段数,最后字段值,制表符,每行内容

awk -F: 'NR==5{print}' /etc/passwd //显示第5行

awk -F: 'NR==5 || NR==6{print}' /etc/passwd //显示第5行和第6行

route -n|awk 'NR!=1{print}' //不显示第一行 <>

awk '/mysql/' /etc/passwd

IF语句

条件表达式

逻辑运算符

数值运算

输出分隔符OFS

输出处理结果到文件

格式化输出

IF语句

相关TAG标签
上一篇:linux就该这么学第三天-yinlf-51CTO博客
下一篇:过完节上班第一天补习下2019年5月3日开始学习的Linux课程-杀神小伟的博客-51CTO博客
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站