awk 内置函数
ChatGPT
AWK 内置了许多函数,这些函数可用于执行各种操作,包括字符串处理、数学计算、数组操作等。以下是一些常见的 AWK 内置函数:
字符串处理函数:
length(string):返回字符串的长度。
index(string, search):返回子串 search 在字符串 string 中的位置。
substr(string, start, length):返回字符串的子串,从位置 start 开始,长度为 length。
split(string, array, separator):将字符串按照指定的分隔符 separator 分割成数组,并存储在数组 array 中。
gsub(regexp, replacement, string):全局替换,用 replacement 替换字符串 string 中所有匹配正则表达式 regexp 的部分。
gsub(regexp, replacement, string):替换字符串 string 中第一个匹配正则表达式 regexp 的部分为 replacement。
数学函数:
sin(x)、cos(x)、tan(x):三角函数。
sqrt(x):平方根。
exp(x):指数函数。
log(x):自然对数。
int(x):返回不大于 x 的最大整数。
数组函数:
length(array):返回数组的长度。
delete array[index]:删除数组中指定索引的元素。
split(string, array, separator):将字符串按照指定的分隔符 separator 分割成数组,并存储在数组 array 中(同名但不同功能的字符串处理函数)。
输入/输出函数:
print:打印输出。
printf(format, expressions):按照指定格式打印输出。
其他函数:
system(command):执行系统命令。
getline:从输入中读取下一行。
close(command):关闭由 command 打开的文件或管道。
这只是 AWK 内置函数的一小部分,还有其他函数可用于处理不同类型的数据和执行不同的操作。 AWK 的内置函数使得处理文本数据变得更加灵活和强大。
函数:split
split 是 AWK 内置的函数,用于将字符串分割成数组。这个函数的一般语法如下:
split(string, array, separator)
string 是要分割的字符串。
array 是存储分割结果的数组。
separator 是分隔符,用于指定在哪里分割字符串。
在之前的例子中,使用了 split($2, parts, "/") 来将第二个字段($2)按照斜杠 ("/") 进行分割,并将分割结果存储在数组 parts 中。这样就可以通过索引来访问分割后的部分。
举例说明,如果有字符串 "jetsung/devenv.git",split 函数将其分割成数组 parts,其中 parts[1] 将是 "jetsung",而 parts[2] 将是 "devenv.git"。
这使得在 AWK 中更灵活地处理文本数据成为可能。请注意,split 函数是 AWK 的标准函数,因此在 AWK 脚本中可以直接使用。