字符串函数对照表
字符换函数对照表
------------------------------------------------------------------------------
函数名 解释 函数返回值
------------------------------------------------------------------------------
length(str) 计算字符串的长度 整数长度值
index(str1,str2) 在str1中查str2的位置 返回值为索引位置,从1计数
tolower(str) 转换为大写 转换后的小写字符串
toupper(str) 转换为大写 转换后的大写字符串
substr(str,m,n) 从string从m字符开始截取n位 截取后的子串
split(str,arr,fs) 按fs切割字符串,结果保存arr 切割后的子串的个数
match(str,RE) 在str中按照RE查找,返回位置 返回索引位子
sub(RE,RepStr,Str) 在str中搜索符合RE的字串并将
其替换为Restr,只替换第一个 替换的个数
gsub(RE,RepStr,Str) 在str中搜索符合RE的字串并将
其替换为Restr,替换所有 替换的个数
示例:
length
awk 'BEGIN{FS=":"}{print length($1),length($2),length($3),length($4),length($5),length($6),length($7)}' passwd
awk -f length.awk passwd 和上面的执行效果一样 如下是length.awk内容
BEGIN{
FS=":"
}
{
while(num<NF)
{
num+=1
printf "%d ",length($num)
}
num=0
printf "%s" ,"\n"
}
index(str,str2)
$ awk 'BEGIN{str="I have a dream";location=index(str,"ea");print location}'
12
match(str,"ea")
$ awk 'BEGIN{str="I have a dream";location=match(str,"ea");print location}'
12
大小写
$ awk 'BEGIN{str="I have a dream";print tolower(str)}'
i have a dream
$ awk 'BEGIN{str="I have a dream";print toupper(str)}'
I HAVE A DREAM
截取
$ awk 'BEGIN{str="I have a dream";print substr(str,1,3)}'
I h
split(str,arr,fs)切割
$ awk 'BEGIN{str="I have a dream";print split(str,aa," "), aa[1]}'
4 I
gsub(RE,RepStr,Str) 全部替换 , sub(RE,RepStr,Str)替换第一个
$ awk 'BEGIN{str=" I 234 YOU 9002 Done";print gsub(/[0-9]+/,"$",str) , str}'
2 I $ YOU $ Done
$ awk 'BEGIN{str=" I 234 YOU 9002 Done";print sub(/[0-9]+/,"$",str) , str}'
1 I $ YOU 9002 Done