9 函数¶
9.1 内建函数¶
9.1.2 字符串函数¶
asort(source [, dest [, how ] ] 和asorti(source [, dest [, how ]
样例:
a["last"] = "de"
a["first"] = "sac"
a["middle"] = "cul"
# asort(a)a的结果会如下
a[1] = "cul"
a[2] = "de"
a[3] = "sac"
# asorti(a)的结果会如下
a[1] = "first"
a[2] = "last"
a[3] = "middle"
# 一个是根据值生成的,一个是根据索引生成的。
gsub(regexp, replacement [, target])
样例:
[root@centos74 test]$ echo "abcabc" |awk '{gsub(/a/,"A");print $0}'
AbcAbc
index(in, find)
样例:
[root@centos74 test]$ awk 'BEGIN { print index("peanut", "an") }'
3
length([string])
[root@centos74 test]$ awk 'BEGIN { a="abcd" ; print length(a) }'
4
split(string, array [, fieldsep [, seps ] ])
split("cul-de-sac", a, "-", seps)
#得到的结果如下
a[1] = "cul"
a[2] = "de"
a[3] = "sac"
strtonum(str)
[root@centos74 test]$ awk 'BEGIN { a="11" ; print strtonum(a) }'
11
sub(regexp, replacement [, target])
这个和gsub差不多。 只是这个只替换一次。gsub替换所有。
[root@centos74 test]$ echo "abcabc" |awk '{sub(/a/,"A");print $0}'
Abcabc
substr(string, start [, length ])
这个就是提取字字符串的。
[root@centos74 test]$ awk -v a="abcdef" 'BEGIN{b =substr(a,2,2) ; print b}'
bc
tolower(string)和toupper(string)
这个就是转化大小写的
9.1.3 输入输出函数¶
close(filename [, how])
关闭文件
fflush([filename])
把缓冲区的输出写入文件去
system(command)
执行系统命令
样例:
END {
system("date | mail -s 'awk run done' root")
}
9.1.3 时间函数¶
strftime([format [, timestamp [, utc-flag] ] ])
这个方法和python的date类的方法相似
格式也是比较多。具体参考 gawk.
systime()
获取当前时间
9.1.4 位操作¶
and(v1, v2 [, …])
compl(val)
lshift(val, count)
or(v1, v2 [, …])
rshift(val, count)
xor(v1, v2 [, …])