首页 > 其他分享 >AWK 内置函数

AWK 内置函数

时间:2023-09-07 10:33:32浏览次数:56  
标签:内置 函数 字符串 参数 str print AWK awk String

字符串函数

参考:https://www.runoob.com/w3cnote/awk-built-in-functions.html

gsub( Ere, Repl, [ In ] )

gsub 是全局替换( global substitution )的缩写。除了正则表达式所有具体值被替代这点,它和 sub 函数完全一样地执行

$ awk 'BEGIN {
    str = "Hello, World"

    print "String before replacement = " str

    gsub("World", "Jerry", str)

    print "String after replacement = " str
}'

输出结果为:

String before replacement = Hello, World
String after replacement = Hello, Jerry

sub(regex,sub,string) 

sub 函数执行一次子串替换。它将第一次出现的子串用 regex 替换。第三个参数是可选的,默认为 $0。

$ awk 'BEGIN {
    str = "Hello, World"

    print "String before replacement = " str

    sub("World", "Jerry", str)

    print "String after replacement = " str
}'
输出结果为:

String before replacement = Hello, World
String after replacement = Hello, Jerry

index( String1, String2 ) 

在由 String1 参数指定的字符串(其中有出现 String2 指定的参数)中,返回位置,从 1 开始编号。如果 String2 参数不在 String1 参数中出现,则返回 0(零)

$ awk 'BEGIN {
    str = "One Two Three"
    subs = "Two"

    ret = index(str, subs)

    printf "Substring \"%s\" found at %d location.\n", subs, ret
}'
输出结果为:

Substring "Two" found at 5 location.

length [(String)]

返回 String 参数指定的字符串的长度(字符形式)。如果未给出 String 参数,则返回整个记录的长度($0 记录变量)。

$ awk 'BEGIN {
    str = "Hello, World !!!"

    print "Length = ", length(str)
}'
输出结果为:

Substring "Two" found at 5 location.

blength [(String)]

返回 String 参数指定的字符串的长度(以字节为单位)。如果未给出 String 参数,则返回整个记录的长度($0 记录变量)

substr( String, M, [ N ] )

返回具有 N 参数指定的字符数量子串。子串从 String 参数指定的字符串取得,其字符以 M 参数指定的位置开始。M 参数指定为将 String 参数中的第一个字符作为编号 1。

如果未指定 N 参数,则子串的长度将是 M 参数指定的位置到 String 参数的末尾 的长度。

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

    print "Substring = " subs
}'
输出结果为:

Substring = Hello

match( String, Ere ) 

在 String 参数指定的字符串(Ere 参数指定的扩展正则表达式出现在其中)中返回位置(字符形式),从 1 开始编号,或如果 Ere 参数不出现,则返回 0(零)。RSTART 特殊变量设置为返回值。RLENGTH 特殊变量设置为匹配的字符串的长度,或如果未找到任何匹配,则设置为 -1(负一)。

$ awk 'BEGIN {
    str = "One Two Three"
    subs = "Two"

    ret = match(str, subs)

    printf "Substring \"%s\" found at %d location.\n", subs, ret
}'
输出结果为:

Substring "Two" found at 5 location.

split( String, A, [Ere] ) 

将 String 参数指定的参数分割为数组元素 A[1], A[2], . . ., A[n],并返回 n 变量的值。此分隔可以通过 Ere 参数指定的扩展正则表达式进行,或用当前字段分隔符(FS 特殊变量)来进行(如果没有给出 Ere 参数)。除非上下文指明特定的元素还应具有一个数字值,否则 A 数组中的元素用字符串值来创建。

$ awk 'BEGIN {
    str = "One,Two,Three,Four"

    split(str, arr, ",")

    print "Array contains following values"

    for (i in arr) {
        print arr[i]
    }
}'
输出结果为:

Array contains following values
One
Two
Three
Four

tolower( String ) 

返回 String 参数指定的字符串,字符串中每个大写字符将更改为小写。大写和小写的映射由当前语言环境的 LC_CTYPE 范畴定义。

$ awk 'BEGIN {
    str = "HELLO, WORLD !!!"

    print "Lowercase string = " tolower(str)
}'
输出结果为:

Lowercase string = hello, world !!!

toupper( String ) 

返回 String 参数指定的字符串,字符串中每个小写字符将更改为大写。大写和小写的映射由当前语言环境的 LC_CTYPE 范畴定义。

$ awk 'BEGIN {
    str = "hello, world !!!"

    print "Uppercase string = " toupper(str)
}'
输出结果为:

Uppercase string = HELLO, WORLD !!!

sprintf(Format, Expr, Expr, . . . ) 

根据 Format 参数指定的 printf 子例程格式字符串来格式化 Expr 参数指定的表达式并返回最后生成的字符串。

$ awk 'BEGIN {
    str = sprintf("%s", "Hello, World !!!")

    print str
}'
输出结果为:

Hello, World !!!

strtonum(str)

strtonum 将字符串 str 转换为数值。 如果字符串以 0 开始,则将其当作八进制数;如果字符串以 0x 或 0X 开始,则将其当作十六进制数;否则,将其当作浮点数。

$ awk 'BEGIN {
    print "十进制数 = " strtonum("123")
    print "八进制数 = " strtonum("0123")
    print "十六进制数 = " strtonum("0x123")
}'
输出结果为:

十进制数 = 123
八进制数 = 83
十六进制数 = 291

  

 

 

 

 

标签:内置,函数,字符串,参数,str,print,AWK,awk,String
From: https://www.cnblogs.com/boye169/p/17684152.html

相关文章

  • Python内置函数 - enumerate, range, max, len
    1, enumerate(可迭代对象,index_base)fromcollections.abcimportIteratormy_list=["aa","b","c"]result=enumerate(my_list)#迭代器:每次返回一个元组,tuple(index,value)print(type(result))#<class'enumerate'>prin......
  • 函数概述
    函数概述print()input()type()int()str()float()chr()ord()函数的作用: 用来将一段功能代码封装到一起,并起个名. 在使用时,只需要使用代码的名字即可好处: 提高代码的开发效率 使代码更加简洁 提高代码的复用率函数的定义和调用(重点)函数的定义格式: def函数名(参数列表...): 函......
  • Unity 编辑器资源导入处理函数 OnPostprocessTexture :深入解析与实用案例
    Unity编辑器资源导入处理函数OnPostprocessTexture用法点击封面跳转下载页面简介在Unity中,我们可以使用编辑器资源导入处理函数(OnPostprocessTexture)来自定义处理纹理资源的导入过程。这个函数是继承自AssetPostprocessor类的,通过重写这个函数,我们可以在纹理资源导入完成......
  • STM32 HAL常用库函数
    1.设置GPIO引脚函数函数名称:voidHAL_GPIO_WritePin(GPIO_TypeDef*GPIOx,uint16_tGPIO_Pin,GPIO_PinStatePinState);第一个参数:GPIOA,B,C,D…(取决于单片机型号)第二个参数:可以取GPIO_PIN_0~GPIO_PIN_15第三个参数:GPIO_PIN_SET(置高电平),GPIO_PIN_RESET(置低电平)例:HAL_GPIO_Writ......
  • 无涯教程-JavaScript - WEEKDAY函数
    描述WEEKDAY函数返回与日期相对应的星期几。缺省情况下,日期以整数形式给出,范围从1(星期日)到7(星期六)语法WEEKDAY(serial_number,[return_type])争论Argument描述Required/OptionalSerial_number一个序号,代表您要查找的日期。应该使用DATE函数或其他公式或函......
  • 无涯教程-JavaScript - TODAY函数
    描述TODAY函数返回当前日期的序列号。序列号是Excel用于日期和时间计算的日期时间代码。如果在输入函数之前单元格格式为"常规",Excel会将单元格格式更改为"日期"。如果要查看序列号,必须将单元格格式更改为"常规"或"数字"。语法TODAY()争论TODAYFunction语法没有参数。......
  • 如何让 Llama2、通义千问开源大语言模型快速跑在函数计算上?
    :::info本文是“在Serverless平台上构建AIGC应用”系列文章的第一篇文章。:::前言随着ChatGPT以及StableDiffusion,Midjourney这些新生代AIGC应用的兴起,围绕AIGC应用的相关开发变得越来越广泛,有呈井喷之势,从长远看这波应用的爆发不仅仅是停留在形式之上,更是在各个领域产生......
  • 无涯教程-JavaScript - TIMEVALUE函数
    描述TIMEVALUE函数返回由文本字符串表示的时间的十进制数。十进制数字是一个介于0(零)到0.99988426之间的值,代表从0:00:00(12:00:00AM)到23:59:59(PM11:59:59)的时间。语法TIMEVALUE(time_text)争论Argument描述Required/OptionalTime_textAtextstringthatre......
  • C语言---函数
    与指针相关的运算符指针是一个值为内存地址的变量(或数据对象)地址运算符:&一般注解:后面跟一个变量名时,&给出该变量的地址。示例:&nurse表示变量nurse的地址间接(或解引用)运算符:*一般注解:后跟一个指针名或地址时,*给出存储在指针指向地址上的值。示例:nurse=22;ptr=&nurse;//指向......
  • 你折腾一天都装不上的插件,函数计算部署 Stable Diffusion 都内置了
    在进行函数计算StableDiffusion答疑的过程中,遇到很多同学在装一些插件的过程中遇到了难题,有一些需要安装一些依赖,有一些需要写一些代码,很多时候安装一个插件就能折腾几天,我们收集了很多同学需要的插件,这一次把比较难装的StableDiffusion插件都装好了。可以根据自己的需要自......