子字符串提取

GNU awk 支持子字符串提取功能,以从主字符串返回固定长度的字符序列。语法是

*substr(string, start [, length ])* 

其中,string 是源字符串,start 标记要为可选长度 length 字符进行提取的子字符串位置的开始。如果未指定长度,则提取将一直进行到字符串的末尾。

字符串的第一个字符被视为字符编号 1。

awk '
BEGIN {
    testString = "MyTESTstring"
    substring  =  substr(testString, 3, 4)    # Start at character 3 for a length of 4 characters
    print substring
}'

将输出子字符串 TEST

awk '
BEGIN {
    testString = "MyTESTstring"
    substring  =  substr(testString, 3)    # Start at character 3 till end of the string
    print substring
}'

这将从字符位置 3 提取子字符串到整个字符串的结尾,返回 TESTstring

注意:-

  • 如果 start 被赋予负值,则 GNU awk 打印整个字符串,如果 length 被赋予非零值,则 GNU awk 行为返回 null 字符串,并且行为在 awk 的不同实现之间变化。