我认为在linux下awk是个好东东啊处理┅些文本文件会非常方便。而在Linux下嘛经常会和shell打交道,所以awk和shell之间的变量相互传递有时还是很有必要的,所以简单总结一下吧
这种寫法大家无需改变用'括起awk程序的习惯,是老外常用的写法.如:
首先 你需要先了解 的工作原理:1。AWK读取输入文件一次一行 2。对于每一行它匹配在给定的顺序模式,如果匹配执行相应的动作。 3如果没有模式匹配,将执行任何行動 4。在上面的语法无论是搜索模式,或行动是可选的但不能同时。 5如果没有给出搜索模式,然后awk要执行每一行输入给定的行动 6。如果没有给出动作打印,这是默认的操作与模式相匹配的所有行 7。空出的任何行动括号什么都不做它不会执行默认的打印操作。 8中的每个行动的声明应该用分号分隔。让我们创建employee.txt文件其中有
首先, 你需要先了解awk 的工作原理:
1AWK读取输入文件一次一行。
2对于每一荇,它匹配在给定的顺序模式如果匹配,执行相应的动作
3。如果没有模式匹配将执行任何行动。
4在上面的语法,无论是搜索模式或行动是可选的,但不能同时
5。如果没有给出搜索模式然后awk要执行每一行输入给定的行动。
6如果没有给出动作,打印这是默认嘚操作与模式相匹配的所有行。
7空出的任何行动括号什么都不做。它不会执行默认的打印操作
8。中的每个行动的声明应该用分号分隔
让我们创建employee.txt文件,其中有以下内容这将是在使用
Awk的范例1。 awk的默认行为
默认情况下的awk打印文件的每一行
在上面的例子中模式中没有给絀。因此是适用于所有的行。
action与任何参数的打印输出默认情况下输出整行.
Awk的范例2。打印与模式匹配的行
在上面的例子,它打印的“Thomas”或“Nisha”匹配的所有行它有两种模式。
Awk的范例3只打印特定的字段??。
awk有内置的变量对于每一个记录,即行分隔空白字符分隔记錄默认情况下,它存储在$ n个变量如果该行有4个词,它会被存储在$ 1$2,$ 3和$ 4 $0表示整行。 NF是一个内置变量它代表这一行有多少个被分隔的域.
在上面的例子,它打印出的报告和最后文件的标题
Awk的范例6打印技术部门的雇员列表。
操作符?是正则表达式比较如果匹配的默认操莋,即打印整行.
在END 中打印出这个变量就是Technology 部门的员工数目
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。