前几篇说awk变量,今天说函数。
看到内置变量的中文翻译如下:
ARGC命令行参数个数 AGRV命令行参数排列 ENVIRON支持队列中系统环境变量的使用 FILENAME浏览文件名 FNR浏览文件的记录数 FS输入域分隔符 NF浏览记录的域个数 NR已读的记录数 OFS输出域分隔符 ORS输出记录分隔符 RS控制记录分隔符
index(s,t) 返回s中字符串t的第一位置 [root@raocl ~]# awk ‘BEGIN {print index(“Sunny”,”ny”)}’ 4
length(s) 返回s的长度 [root@raocl ~]# awk ‘BEGIN {print length(“Sunny”)}’ 5
match(s,r) 测试s是否包含匹配r的字符串,默认带两个变量RSTART、RLENGTH,分别是开始位置和占用长度 [root@raocl ~]# echo 12|awk ‘$1=”J.Lulu”{print match($1,”u”),RSTART,RLENGTH}’ 4 4 1
split(s,a,fs) 以fs为分隔符将s分割输入数组a [root@raocl ~]# awk ‘BEGIN {print split(“12#345#6789”,myarray,”#”),myarray[2]}’ 3 345
substr(s,p) 返回字符串s中从p开始的后缀部分
substr(s,p,n) 返回字符串s中从p开始长度为n的后缀部分 [root@raocl ~]# echo abcdefg|awk ‘{print substr($0,1,length($0)-4)}’ abc
gsub(r,s,t) 在t中用s替代r(不写t就是$0) (附:sub()函数只替换第一次出现的位置;另,sub/gsub修改字符串,而substr是生成子串,不修改原串) [root@raocl ~]# echo abc|awk ‘gsub(/ab/,”12”,$0)’ 12c