上古神器Awk学习笔记(二)

Awk的前世今生

Awk是以它的三位作者(Aho, Kernighan, and Weinberger)的Family name的首字符。最初在System V上。GNU在其基础上,添加了额外了特性形成了
gawk所以下文所讨论的awk如无特别说明,指的都是gawk。awk是一门模式扫描和处理语言。所以其语法上可能和shell的语法不同。所以awk也可以理解为是一个脚本解释器,类似shell
#!/bin/awk#!/bin/bash

Awk的选项

-F fs

推荐一个在线正则表达式生成工具txt2re
这可能是你能awk被用的最多的选项了,使用作为分隔符,需要注意的是 -F 选项支持正则。

awk上的变量,记录以及域

变量

在高级语言中变量先声明后使用,而awk则简化了
这一过程。无需声明,直接使用就行。直接使用带来一个问题,变量声明在前,所以变量的类型得以确定,脚本语言往往是弱类型的语言。只能从使用上看出数据类型。

记录

通常,记录是通过换行符分隔(可以通过变量RS手工指定)。

域可以类比数据库中的的概念。默认是通过空白符(space,tab,newline)分隔。(可以通过设置变量FS执行). 如果一行的域大小为NF如果n>NF那么$n为 null-string.

awk程序执行

 pattern   { action statements }
 function name(parameter list{ statements }

参考资料

  • AWK 简明教程

你可能感兴趣的:(linux)