awk 介绍
1. 先上例子
cat test.log |sort |awk '
BEGIN{m="";}
{ if(m=="" || m!=$1){m=$1; print $1;} }
' |wc -l
2. 解释例子
2.1 cat 查阅test.log内容
2.2 |sort 对test.log的内容进行排序
2.3 |awk '...' 执行awk去重(稍后详述)
2.4 |wc -l 统计结果行数
2.5 BEGIN{m="";} 初始化代码块; 声明了变量m为空值。
2.6 { if(m=="" || m!=$1){m=$1; print $1;} }
{}称为执行体。
如果m为空或者m不等于当前行的值,则把当前行的值给m,然后输出当前行。
由于是排序的,所以下一行跟上一行比较,自然达到了去重的效果。
3. 模块解释
BEGIN模块
BEGIN模块后紧跟着动作块,这个动作块在awk处理任何输入文件之前执行。所以它可以在没有任何输入的情况下进行测试。它通常用来改变内建变量的值,如OFS,RS和FS等,以及打印标题。如:$ awk 'BEGIN{FS=":"; OFS="\t"; ORS="\n\n"}{print $1,$2,$3} test。上式表示,在处理输入文件以前,域分隔符(FS)被设为冒号,输出文件分隔符(OFS)被设置为制表符,输出记录分隔符(ORS)被设置为两个换行符。$ awk 'BEGIN{print "TITLE TEST"}只打印标题。
END模块
END不匹配任何的输入文件,但是执行动作块中的所有动作,它在整个输入文件处理完成后被执行。如$ awk 'END{print "The number of records is" NR}' test,上式将打印所有被处理的记录数。
参阅资料:
分享到:
相关推荐
linux-awk.doc
linux awk 初级编程
最牛逼的Linux awk命令详细介绍和实例快速学习
linux awk 命令大全 awk 常用命令
Linuxawk命令详解[归类].pdf
超详细的Linux实战awk详解,轻松解决文本流问题,干货满满
linux_awk 学习手册 AWK 在处理系统日常管理上很不错
awk 学习资料!!!
awk详解awk详解awk详解awk详解awk详解awk详解awk详解awk详解awk详解
本文档详细介绍linux命令,linux工具awk的使用,对初学者非常有帮助,希望读者能从该文档受益。
Linux awk 命令 AWK是一种处理文本文件的语言,是一个强大的文本分析工具。 之所以叫AWK是因为其取了三位创始人 Alfred Aho,Peter Weinberger, 和 Brian Kernighan 的 Family Name 的首字符。 语法 awk [选项参数]...
此为linux中awk语句的详细使用教程。
Linux AWK使用描述
linux awk命令详解.doc
关于linux下的awk 如调用awk的方式,与正则表达式的结合,内置变量 操作符,内置的字符串函数,格式化函数printf等
linuxawk将多个文件结果列合并到一个文件整理.pdf
它不仅是 Linux 中也是任何环境中现有的功能最强大的数据处理引擎之一。这种编程及数据操作语言(其名称得自于它的创始人 Alfred Aho 、Peter Weinberger 和 Brian Kernighan 姓氏的首个字母)的最大功能取决于一个...
linux中awk的使用方法 设计得问题比较简单 ;方便理解;
该文档简单描述了一下AWK的内置函数。。。。