关于Unix awk的记录的知识讲解

系统 其他OS
在文章中,在Unix awk中,缺省的情况下总是将文本文件中的一行视为一个记录,而将一行中的某一部分作为记录中的一个字段。

Unix操作系统有很多值得学习的地方,我们今天来讲解一下Unix awk的记录的知识。前面说过,Unix awk处理的工作与数据库的处理方式有相同之处,其相同处之一就是Unix awk支持对记录和字段的处理,其中对字段的处理是grep和sed不能实现的,这也是awk优于二者的原因之一。

你可能对Unix比较熟悉,但你可能对Unix awk很陌生,这一点也不奇怪,的确,与其优秀的功能相比,awk还远没达到它应有的知名度。

当然读者要真正地掌握Unix awk,仅仅读了本文是不够的,还必须有上机实习这一步。值得提醒大家的是,Unix awk有很多版本,并且各个版本之间存在着一些差别,因此,在使用awk以前***参考一下你使用的系统的联机帮助。

在Unix awk中,缺省的情况下总是将文本文件中的一行视为一个记录,而将一行中的某一部分作为记录中的一个字段。为了操作这些不同的字段,awk借用shell的方法,用$1,$2,$3...这样的方式来顺序地表示行(记录)中的不同字段。特殊地,Unix awk用$0表示整个行(记录)。不同的字段之间是用称作分隔符的字符分隔开的。

系统默认的分隔符是空格。Unix awk允许在命令行中用-F re的形式来改变这个分隔符。事实上,Unix awk用一个内置的变量FS来记忆这个分隔符。Unix awk中有好几个这样的内置变量,例如,记录分隔符变量RS、当前工作的记录数NR等等,本文后面的附表列出了全部的内置变量。

这些内置的变量可以在Unix awk程序中引用或修改,例如,你可以利用NR变量在模式匹配中指定工作范围,也可以通过修改记录分隔符RS让一个特殊字符而不是换行符作为记录的分隔符。

例:显示文本文件myfile中第七行到第十五行中以字符%分隔的***字段,第三字段和第七字段:
 

  1. awk -F % 'NR==7,NR==15 {printf $1 $3 $7}' 

 

【编辑推荐】

  1. 关于Unix系统线路图的简单介绍
  2. Unix系统的心脏Unix文件系统
  3. 总结关于Unix系统相关的经验教训
  4. 对Unix系统发展期和现况的了解
  5. 学习Unix系统知识的一些经验之谈
责任编辑:小霞
相关推荐

2010-05-11 13:33:22

Unix awk

2010-04-21 11:54:22

Unix 命令

2010-05-11 11:29:11

Unix awk

2010-05-06 17:03:49

Unix命令

2010-04-30 14:51:23

Unix系统

2010-05-05 13:13:55

Unix内核

2010-04-30 13:27:26

Unix cronta

2010-05-05 13:45:21

Unix Telnet

2010-05-04 12:25:28

Unix链接

2010-04-30 13:38:51

Unix at命令

2010-05-04 09:22:10

Unix文件

2010-05-10 11:20:10

Unix系统

2010-05-11 18:03:28

2010-05-07 14:13:10

Unix--Tripw

2010-05-11 11:34:44

2010-05-06 17:41:19

Unix命令

2010-05-11 12:17:51

Unix awk

2010-05-11 10:36:34

Unix awk

2010-05-07 17:41:36

BSD Unix

2010-05-04 16:33:39

Unix系统
点赞
收藏

51CTO技术栈公众号