awk简易教程
精选 转载14.Awk可以使用数组
Awk可以使用数组,但是awk的数组下标从1开始,例如
myarray[1]=”betty”
myarray[2]=123
{
for(i in myarray)
print myarray[i];
}
但这里存在的一个问题是不敢保证print的输出顺序,是betty 123 还是123 betty,这里便牵扯到一个问题,由于awk把所有的东西都当做字符串来处理,那么数组的下标是否也可以作为字符串来处理呢?答案是肯定的
例如
myarray[“name”]=”betty”
myarray[“num”]=123
15格式化输出
大部分情况下print会完成任务,但是有些情况下,我们需要更多详细的信息,这时awk提供了printf及sprintf函数,例如
printf(“%s got %d record”,”betty”,123)
16 字符串函数
awk中有很多字符串函数,从而使字符串的各种处理更加的简单方便,因为它不像Python,c及c++那样讲字符串看做字符数组,二是看做一个统一的整体。
mystring=”How are you doing today?”
length()#用来计算字符串的长度 eg. print length(mystring) 输出为:24 为字符串的长度
index() #返回子字符串在实际字符串中的位置
eg. print index(mystring,”you”) awk将会打印9,为“you“在字符串中的位置
tolower() #将字符串转换为小写装填
toupper() #将字符串转换为答谢字符
substr() #从字符串中抽取子字符串,substr参数格式为substr(mystring, startpos, len)
# 分别为母字符串,字符串开始位置,字符串长度
eg. print substr(mystring, 9 ,3) 将会输出you
match() #match()与index()非常相似,但是它搜索的不是子字符串,而是搜索正则表达式 的,返回值为匹配的位置,它还设置有两个变量,RSTART与RLENGTH用来返回匹配 的位置,eg. print match(mystring,/you/) RSTART RLENGTH 输出为:9 9 3
sub() && gsub() #字符串替换,前者只对最先找到的替换,后者对全部的替换
sub(/o/,”O”,mystring) print mystring 输出为:hOw are you doing today?
gsub(/o/,”O”,mystring) print mystring 输出为: How are yOu dOing tOday?
split() #eg.split(“1,2,3,4,5”,num,”,”) print num[1] num[2]将输出1,2
意义为:将最先的字符串,按照最后一个参数定义的符号为分隔符,然后将分割出来的部分依次存入参数二定义的数组中。
下一篇:linux 进程命令top详解
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
shell脚本之awk的使用
shell脚本之awk的使用
bc 数组 bash -
makefile简易教程
文章目录1.什么是makefile2.为什么说makefile正好适用于编译工程呢?3.mak
字符串替换 目标文件 字符串 -
JavaScript简易教程
1.document.write(""); 输出语句2.JS中的注释为//3.传统的HTML文档顺序是:document->h
javascript string function 浏览器 html -
IDA简易教程
]
cryptography windows attributes dos structure -
nginx简易教程
nginx简易教程概述什么是nginx?
nginx 服务器 反向代理 html 配置文件 -
tornado 简易教程tornado 服务器 python 字符串 django