AWK 中的 字符串函数

首页 / Awk入门教程 / AWK 中的 字符串函数

AWK具有以下内置String函数-

asort(arr [,d [,how]]) 

此函数使用GAWK的常规规则对 arr 的内容进行排序以比较值,并使用从1开始的连续整数替换排序后的值 arr 的索引。

[Learnfk]$awk 'BEGIN {
   arr[0]="Three"
   arr[1]="One"
   arr[2]="Two"
   print "Array elements before sorting:"
   
   for (i in arr) {
      print arr[i]
   }
   asort(arr)
   print "Array elements after sorting:"
   
   for (i in arr) {
      print arr[i]
   }
}'

在执行此代码时,您将获得以下输出-

无涯教程网

链接:https://www.learnfk.comhttps://www.learnfk.com/awk/awk-string-functions.html

来源:LearnFk无涯教程网

Array elements before sorting:
Three
One
Two
Array elements after sorting:
One
Three
Two

asorti(arr [,d [,how]]) 

该函数的行为与 asort()的行为相同,除了将数组索引用于排序。

[Learnfk]$awk 'BEGIN {
   arr["Two"]=1
   arr["One"]=2
   arr["Three"]=3
   asorti(arr)
   print "Array indices after sorting:"
   
   for (i in arr) {
      print arr[i]
   }
}'

在执行此代码时,您将获得以下输出-

无涯教程网

链接:https://www.learnfk.comhttps://www.learnfk.com/awk/awk-string-functions.html

来源:LearnFk无涯教程网

Array indices after sorting:
One
Three
Two

gsub(regex,sub,string)

gsub 代表全局替换,它用 regex 替换每次出现的 sub ,第三个参数是可选的。如果省略,则使用$0。

[Learnfk]$awk 'BEGIN {
   str="Hello, Learnfk"
   print "String before replacement=" str
   
   gsub("Learnfk", "Learnfk", str)
   print "String after replacement=" str
}'

在执行此代码时,您将获得以下输出-

无涯教程网

链接:https://www.learnfk.comhttps://www.learnfk.com/awk/awk-string-functions.html

来源:LearnFk无涯教程网

String before replacement=Hello, Learnfk
String after replacement=Hello, Learnfk

index(str,sub)

它检查 sub 是否为 str 的子字符串。成功时,它返回sub开始的位置;否则返回0。 str 的第一个字符位于位置1。

[Learnfk]$awk 'BEGIN {
   str="One Two Three"
   subs="Two"
   ret=index(str, subs)
   
   printf "Substring\"%s\" found at %d location.\n", subs, ret
}'

在执行此代码时,您将获得以下输出-

无涯教程网

链接:https://www.learnfk.comhttps://www.learnfk.com/awk/awk-string-functions.html

来源:LearnFk无涯教程网

Substring "Two" found at 5 location.

length(str)

它返回一个字符串的长度。

[Learnfk]$awk 'BEGIN {
   str="Hello, Learnfk !!!"
   print "Length=", length(str)
}'

在执行此代码时,您将获得以下输出-

无涯教程网

链接:https://www.learnfk.comhttps://www.learnfk.com/awk/awk-string-functions.html

来源:LearnFk无涯教程网

Length=16

match(str,regex)

它返回字符串 str 中 regex 的第一个最长匹配的索引。如果找不到匹配项,则返回0。

[Learnfk]$awk 'BEGIN {
   str="One Two Three"
   subs="Two"
   ret=match(str, subs)
  
   printf "Substring\"%s\" found at %d location.\n", subs, ret
}'

在执行此代码时,您将获得以下输出-

无涯教程网

链接:https://www.learnfk.comhttps://www.learnfk.com/awk/awk-string-functions.html

来源:LearnFk无涯教程网

Substring "Two" found at 5 location

split(str,arr,regex)

此函数通过正则表达式 regex 将字符串 str 拆分为字段,并将这些字段加载到数组 arr 中。如果省略 regex ,则使用FS。

[Learnfk]$awk 'BEGIN {
   str="One,Two,Three,Four"
   split(str, arr, ",")
   print "Array contains following values"
   
   for (i in arr) {
      print arr[i]
   }
}'

在执行此代码时,您将获得以下输出-

无涯教程网

链接:https://www.learnfk.comhttps://www.learnfk.com/awk/awk-string-functions.html

来源:LearnFk无涯教程网

Array contains following values
One
Two
Three
Four

printf(format,expr-list)

该函数根据格式返回从 expr-list 构造的字符串。

[Learnfk]$awk 'BEGIN {
   param=1024.0
   result=sqrt(param)
   
   printf "sqrt(%f)=%f\n", param, result
}'

在执行此代码时,您将获得以下输出-

无涯教程网

链接:https://www.learnfk.comhttps://www.learnfk.com/awk/awk-string-functions.html

来源:LearnFk无涯教程网

Hello, Learnfk !!!

strtonum(str)

此函数检查 str 并返回其数值,如果str以前导0开头,则将其视为八进制数,如果str以0x或0X开头,则将其视为十六进制数。否则,假定它是一个十进制数。

[Learnfk]$awk 'BEGIN {
   print "Decimal num=" strtonum("123")
   print "Octal num=" strtonum("0123")
   print "Hexadecimal num=" strtonum("0x123")
}'

在执行此代码时,您将获得以下输出-

无涯教程网

链接:https://www.learnfk.comhttps://www.learnfk.com/awk/awk-string-functions.html

来源:LearnFk无涯教程网

Decimal num=123
Octal num=83
Hexadecimal num=291

sub(regex,sub,string)

此函数执行单次替换,它用 regex 代替了 sub 的第一个匹配项。第三个参数是可选的。如果省略,则使用$0。

[Learnfk]$awk 'BEGIN {
   str="Hello, Learnfk"
   print "String before replacement=" str
   
   sub("Learnfk", "Learnfk", str)
   print "String after replacement=" str
}'

在执行此代码时,您将获得以下输出-

无涯教程网

链接:https://www.learnfk.comhttps://www.learnfk.com/awk/awk-string-functions.html

来源:LearnFk无涯教程网

String before replacement=Hello, Learnfk
String after replacement=Hello, Learnfk

substr(str,start,l)

此函数返回字符串 str 的子字符串,该字符串从长度为 l 的索引 start 开始。如果省略length,则返回从索引 start 开始的 str 后缀。

[Learnfk]$awk 'BEGIN {
   str="Hello, Learnfk !!!"
   subs=substr(str, 1, 5)

   print "Substring=" subs
}'

在执行此代码时,您将获得以下输出-

无涯教程网

链接:https://www.learnfk.comhttps://www.learnfk.com/awk/awk-string-functions.html

来源:LearnFk无涯教程网

Substring=Hello

tolower(str)

此函数返回字符串 str 的副本,并将所有大写字符转换为小写。

[Learnfk]$awk 'BEGIN {
   str="HELLO, Learnfk !!!"
   print "Lowercase string=" tolower(str)
}'

在执行此代码时,您将获得以下输出-

无涯教程网

链接:https://www.learnfk.comhttps://www.learnfk.com/awk/awk-string-functions.html

来源:LearnFk无涯教程网

Lowercase string=hello, Learnfk !!!

toupper(str)

此函数返回字符串 str 的副本,其中所有小写字符都转换为大写。

[Learnfk]$awk 'BEGIN {
   str="hello, Learnfk !!!"
   print "Uppercase string=" toupper(str)
}'

在执行此代码时,您将获得以下输出-

无涯教程网

链接:https://www.learnfk.comhttps://www.learnfk.com/awk/awk-string-functions.html

来源:LearnFk无涯教程网

Uppercase string=HELLO, Learnfk !!!

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

从0开始学游戏开发 -〔蔡能〕

Go语言核心36讲 -〔郝林〕

10x程序员工作法 -〔郑晔〕

Vue开发实战 -〔唐金州〕

MongoDB高手课 -〔唐建法(TJ)〕

现代C++编程实战 -〔吴咏炜〕

Python自动化办公实战课 -〔尹会生〕

高楼的性能工程实战课 -〔高楼〕

去无方向的信 -〔小麥〕

好记忆不如烂笔头。留下您的足迹吧 :)