shell学习笔记 (9.3)

shell学习笔记 (9.3)

---china.pub.com linux shell电子书学习笔记

4. 打印所有记录

awk '{print $0}' grade.txt

5. 打印单独记录

awk '{print $1,$4}' grade.txt

6.打印报告头

awk 'BEGIN {print "Name Belt\n------------------------------"}{print $1"\t"$4}' grade.txt

7.打印信息尾

awk 'BEGIN {print "Name\n--------"} {print $1} END {"end-of-report"}' grade.txt

9.2.3   awk中正则表达式及其操作

这里正则表达式用斜线括起来。例如,在文本文件中查询字符串 G r e e n,使用/ G r e e n /可以
查出单词G r e e n的出现情况。

9.2.4   元字符

这里是a w k中正则表达式匹配操作中经常用到的字符,详细情况请参阅本书第 7章正则表
达式概述。
\ ^ $ . [] | () * + ?
这里有两个字符第7章没有讲到,因为它们只适用于a w k而不适用于g r e p或s e d。它们是:
+ 使用+匹配一个或多个字符。
? 匹配模式出现频率。例如使用/X Y?Z/匹配X Y Z或Y Z。

9.2.5   条件操作符

表9 - 2给出a w k条件操作符,后面将给出其用法。

 

cc d

1. 匹配
为使一域号匹配正则表达式,使用符号‘~’后紧跟正则表达式,也可以用 i f语句。a w k中i f后面的条件用()括起来。

2. 精确匹配
假定要使字符串精确匹配,比如说查看学生序号 4 8,文件中有许多学生序号包含 4 8,如果在f i e l d - 3中查询序号4 8,a w k将返回所有序号带4 8的记录:

awk '{if($3~/48/) print $0}' grade.txt

3. 不匹配
有时要浏览信息并抽取不匹配操作的记录,与 ~相反的符号是!~,意即不匹配。

4. 小于    awk '{if ($6 < $7) print $0 "$1 try better at the next comp"}' grade.txt

5.小于等于和大于 除符号外 例子同上。

7. 设置大小写

为查询大小写信息,可使用[ ]符号。在测试正则表达式时提到可匹配[ ]内任意字符或单词

8. 任意字符
抽取名字,其记录第一域的第四个字符是 a,使用句点.。表达式/ ^ . . . a /意为行首前三个字符任意,第四个是a,尖角符号代表行首。

9. 或关系匹配
为抽取级别为y e l l o w或b r o w n的记录,使用竖线符 |。意为匹配 | 两边模式之一。注意,使用竖线符时,语句必须用圆括号括起来。

10. 行首
不必总是使用域号。如果查询文本文件行首包含 4 8的代码,可简单使用下面^符号: awk '/^48/' input-file

11. AND

awk '{if ($1=="P.Bunny" && $4=="Yellow")print $0}' grade.txt

12. Or

awk '{if ($4~/Brown/ || $4=="Yellow")print $0}' grade.txt

 

你可能感兴趣的:(职场,awk,休闲,awk输出)