Linux文本处理三剑客——awk详细用法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Linux文本处理三剑客——awk详细用法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1991字,纯文字阅读大概需要3分钟。
内容图文
![Linux文本处理三剑客——awk详细用法](/upload/InfoBanner/zyjiaocheng/972/2715f5a4070149559312e4b3c6829cd6.jpg)
awk是行处理器: 相比较屏幕处理的优点,在处理庞大文件时不会出现内存溢出或是处理缓慢的问题,通常用来格式化文本信息。
awk处理过程: 依次对每一行进行处理,然后输出 。
awk命令形式:
awk [-F|-f|-v] ‘BEGIN{} //{command1; command2} END{}’ file
[-F|-f|-v] 大参数,-F指定分隔符,-f调用脚本,-v定义变量 var=value
BEGIN 初始化代码块,在对每一行进行处理之前,初始化代码,主要是引用全局变量,设置FS分隔符
END 结尾代码块,在对每一行进行处理之后再执行的代码块,主要是进行最终计算或输出结尾摘要信息
// 匹配代码块,可以是字符串或正则表达式
{} 命令代码块,包含一条或多条命令
; 多条命令使用分号分隔
awk的特殊符号:
$0:表示整个当前行
$1:每行第一个字段
NF:字段数量变量
NR:每行的记录号,多文件记录递增
FNR:与NR类似,不过多文件记录不递增,每个文件都从1开始
FS:BEGIN时定义分隔符(相当于-F)
RS:输入的记录分隔符, 默认为换行符(即文本是按一行一行输入)
~:匹配,与==相比不是精确比较
!~:不匹配,不精确比较
==:等于,必须全部相等,精确比较
!=:不等于,精确比较
+:匹配时表示1个或1个以上
OFS:输出字段分隔符, 默认也是空格,可以改为制表符等
ORS:输出的记录分隔符,默认为换行符,即处理结果也是一行一行输出到屏幕
print:是awk打印指定内容的主要命令(标准化输出)
printf:格式化输出
下面举几个例子,能更便于理解!!!
1、
这里是通过awk把/etc/passwd 中的用户名拿到,其中 '{}' 是固定格式。
-F: 是选定以:作为分隔符,如果是以空格作为分隔符,则直接默认不用写。
2、
这个例子则是把/etc/passwd下的gid和uid拿出来。printf是格式化输出,默认不会换行,而其中的“\n”和“\t”则是换行及有一个table键的距离。
3、
这个例子中NR是指行号,但$NR是默认每一行的结尾的那个字符段。$0是匹配的整行。
4、
这是BEGIN以及END的格式及应用,其中的{FS=":"}和-F:是相同的。后面打印的this are usernames,在最后一行打印。
5、
这是通过给X赋值的方式,来寻找/etc/fstab中的空行数。
6、
这个例子是计算uid的总和
7、
在awk中可以使用if判断和for循环,其中<(小于)、>(大于)、>=(大于等于)
8、
是通过~进行匹配,只匹配以lpp或者root开头的行数
9、
uid和gid的和如果大于二百输出
10、
其中是查看空闲内存,并把以Kb为单位换算为Mb为单位。
内容总结
以上是互联网集市为您收集整理的Linux文本处理三剑客——awk详细用法全部内容,希望文章能够帮你解决Linux文本处理三剑客——awk详细用法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。