else {print}
}
14.7. 数组
awk中的数组的下标能够是数字和字母,称为关联数组。
14.7.1. 下标和关联数组
print arrayname[item]
}
}
$ awk '/^tom/{name[NR]=$1}; END{for(i in name){print name}}' test。打印有值的数组元素。打印的顺序是随机的。
14.8. awk的内建函数
14.8.1. 字符串函数
sub (regular expression, substitution string, target string)
实例: $ awk '{ sub(/test/, "mytest"); print }' testfile
$ awk '{ sub(/test/, "mytest"); $1}; print }' testfile
第一个例子在整个记录中匹配,替换只发生在第一次匹配发生的时候。如要在整个文档中进行匹配需要用到gsub
第二个例子在整个记录的第一个域中进行匹配,替换只发生在第一次匹配发生的时候。
gsub (regular expression, substitution string, target string)
实例: $ awk '{ gsub(/test/, "mytest"); print }' testfile
$ awk '{ gsub(/test/, "mytest"), $1 }; print }' testfile
第一个例子在整个文档中匹配test,匹配的都被替换成mytest。
第二个例子在整个文档的第一个域中匹配,任何匹配的都被替换成mytest。
实例: $ awk '{ print index("test", "mytest") }' testfile
实例返回test在mytest的位置,结果应该是3。
length
实例: $ awk '{ print length( "test" ) }'
$ awk '{ print length }' testfile
第一个实例返回test字符串的长度。
第二个实例返回testfile文档中第条记录的字符数。
substr( string, starting position, length of string )
实例: $ awk '{ print substr( "hello world", 7,11 ) }'
上例截取了world子字符串。
实例: $ awk '{start=match("this is a test",/[a-z] $/); print start}'
$ awk '{start=match("this is a test",/[a-z] $/); print start, RSTART, RLENGTH }'
第一个实例打印以连续小写字符结尾的开始位置,这里是11。
第二个实例还打印RSTART和RLENGTH变量,这里是11(start),11(RSTART),4(RLENGTH)。
tolower( string )
实例: $ awk '{ print toupper("test"), tolower("TEST") }'
split( string, array )
实例: $ awk '{ split( "20:18:00", time, ":" ); print time[2] }'
上例把时间按冒号分割到time数组内,并显示第二个数组元素18。
14.8.2. 时间函数
实例: $ awk '{ now = systime(); print now }'
Table 3. 日期和时间格式说明符
格式
描述
%a
星期几的缩写(Sun)
%A
星期几的完整写法(Sunday)
%b
月名的缩写(Oct)
%B
月名的完整写法(October)
%c
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




