零下273度哪里可以看:awk的变量

来源:百度文库 编辑:偶看新闻 时间:2024/05/09 06:12:40

awk的变量

(2009-08-11 05:40:09) 转载标签:

awk变量

shell变量引用

字段变量

内置变量

自定义变量

函数

杂谈

分类: perl,cgi,shell脚本编程 awk内置变量(预定义变量)
FS 字段分隔符
NR 行号 记录号
NF "当前"记录(行)中的字段个数
这些内置的变量可以在awk程序中引用或修改
awk -F % 'NR==7,NR==15{print $1}' tt1.txt


字段变量——借用shell 的命令行参数方法:
$1,$2,$3...这样的方式来顺序地表示行(记录)中的不同字段
$0表示整个行(记录)

自定义变量
在 ‘ 外-v 定义自定义变量
在’ ‘内通过$引用自定义变量
awk -v hn1=$hn '$2==hn1 {printf("%s\n",$1)}' hosts
hn1为awk自定义变量
$hn为shell变量
$1,$2为字段变量


awk引入shell变量——实际是通过自定义变量实现
[macg@machome ~]$ vi temp

read hn
awk -v hn1=$hn '$2==hn1 {printf("%s\n",$1)}' hosts
[macg@machome ~]$ sh temp
macg
1.1.1.1


各种变量的带$不带$情况
内置变量随时都不带$
自定义变量在定义时和引用时都不带$
字段变量随时都带$
引用外面的shell变量必须带$

awk的内置函数
pattern 中的length和action中的print,printf都属于awk 的内置函数, 这是awk与SED最不同的地方
length(string) 求串string中的字符个数
substr(string,position,len) 分割串
返回一个以position开始len个字符的子串
Printf() printf ()和C很类似,格式与C语言几乎一模一样)
print print与perl的print类似,与shell的echo也类似