Awk是一种编程语言,可轻松处理结构化数据并生成格式化的报告。Awk代表其作者的名字“ Aho,W einberger和K ernighan”。
Awk主要用于模式搜搜和处理。它搜索一个或多个文件以查看它们是否包含与指定模式匹配的行,然后执行关联的操作。
Awk的一些关键功能包括:
Awk从文件或其标准输入中读取,然后输出到其标准输出。Awk不会与非文本文件相处。
1. 打印文件每一行
$ awk'{print;}'employee.txt
2. 打印匹配的行
$ awk '/jack/tony/' employee.txt
3.打印指定的列
Awk具有许多内置变量。对于每条记录(即一行),默认情况下,它将以空格字符分隔的记录分割并将其存储在$ n变量中。如果该行有4个单词,它将存储在$ 1,$ 2,$ 3和$ 4中。$ 0代表整行。NF是一个内置变量,代表记录中字段的总数。
$ awk '{print $ 2,$ 5;}' employee.txt
4.模式
Awk有两个重要的模式,它们由关键字BEGIN和END指定。
Syntax:
BEGIN { Actions}
{ACTION} # Action for everyline in a file
END { Actions }
例子:
$ awk 'BEGIN {print "Name\tDesignation\tDepartment\tSalary";}
> {print $2,"\t",$3,"\t",$4,"\t",$NF;}
> END{print "Report Generated\n--------------";
> }' employee.txt
5.大于条件查找
$ awk '$ 1> 200' employee.txt
6.匹配条件查找
awk' $4〜/ Technology /' employee.txt
7.统计行数
$ awk 'BEGIN { count=0;}
$4 ~ /Technology/ { count++; }
END { print "Number of employees in Technology Dept =",count;}' employee.txt
Number of employees in Tehcnology Dept = 3
AWK是shell下面文本搜索处理三大神器之一,掌握AWK的用法对开发处理问题很有帮助。