字符串函數對照表
字符換函數對照表
------------------------------------------------------------------------------
函數名 解釋 函數返回值
------------------------------------------------------------------------------
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