linux awk函数使用shellawkwhile循环环的的一些疑问

我认为在linuxawk是个好东东啊处理┅些文本文件会非常方便。而在Linux下嘛经常会和shell打交道,所以awkshell之间的变量相互传递有时还是很有必要的,所以简单总结一下吧

这种寫法大家无需改变用'括起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 部门的员工数目


}

我要回帖

更多关于 shellawkwhile循环 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信