📜  AWK 中的内置函数

📅  最后修改于: 2022-05-13 01:57:28.498000             🧑  作者: Mango

AWK 中的内置函数

AWK 有许多用于数字、字符串、输入和输出操作的内置函数。 awk 有以下两种高级内置函数类别:

  • 用于数字运算的内置函数。
  • 用于字符串操作的内置函数。

先决条件 - Unix/Linux 中的 AWK 命令

数字运算的内置函数

1. awk int(n)函数: int()函数为我们提供给定参数的整数部分。这将产生给定 n 的最小整数部分。 n 是任何带或不带浮点数的数字。如果您将整数作为参数,则此函数返回相同的值。

    例子:

    Input : $ awk 'BEGIN{print int(3.534);print int(4);print int(-5.223);print int(-5);}'
    Output : 3
             4
             -5
             -5
    

2. awk log(n)函数: log()函数提供给定数量 n 的自然对数(以e为底)。 log() 仅当 n 为正数时才返回对数值。如果我们给出任何无效的数字(甚至是负数),它就会抛出一个错误。

    例子:
    Input : $ awk 'BEGIN{print log(3.534);print log(4);print log(0);print log(-5);print log(-1);}'
    Output : 1.26243
             1.38629
             -inf
             awk: cmd. line:1: warning: log: received negative argument -5
             nan
             awk: cmd. line:1: warning: log: received negative argument -1
             nan
    

解释:当给定零时返回-inf 并在给定负数时给出 nan 错误。

3. awk sqrt(n)函数: sqrt()函数给出给定整数 n 的正根。此函数也接受正数。

    例子:
    Input : $ awk 'BEGIN{print sqrt(16);print sqrt(0);print sqrt(-12);}'
    Output : 4
             0
             awk: cmd. line:1: warning: sqrt: called with negative argument -12
             -nan
    

说明:如果我们给负数作为参数,它会返回nan错误。

4. awk sin(n)函数: sin()函数给出 n 的正弦值, n 以弧度表示

    例子:

    Input : $ awk 'BEGIN{print sin(-60);print sin(90);print sin(45);}'
    Output :0.304811
            0.893997
            0.850904
    

5. awk cos(n)函数: cos()函数给出n 的余弦值, n 以弧度表示

    例子:
    Input : $ awk 'BEGIN{print cos(-60);print cos(90);print cos(45);}'
    Output :-0.952413
            -0.448074
             0.525322
    

    字符串操作的内置函数

1. AWK指数(STR1,STR2)函数:该搜索字符串STR1的字符串STR2的第一事件,并返回以字符,其中该发生在字符串STR1开始的位置。 awk 中的字符串索引从 1 开始

    例子:
    Input: awk 'BEGIN{print index("Graphic", "ph"); print index("University", "abc")}'
    Output: 4
            0
    

说明:如果在 str1 中找不到 str2,则返回 0。

2. awk length(字符串)函数: length()函数计算字符串的长度。

    例子:
    Input: $ awk 'BEGIN{print length("Graphic Era University")}'
    Output: 22
    
    

说明:字符串的长度也包括空格。

3. awk substr(s, p, n)函数: length()函数用于从字符串提取子串函数。在起始位置p处返回字符串s 的子字符串,最大长度为n 。如果未提供n ,则使用来自p的字符串的其余部分。

    例子:

    Input: $ awk 'BEGIN{print substr("Graphic Era University", 9)}'
    Output: Era University
    
    
    Input: $ awk 'BEGIN{print substr("Graphic Era University", 9, 8)}'
    Output: Era Univ
    
    

4. awk tolower(s)函数:将字符串s中的所有大写字符转成小写,并返回新的字符串。

    例子:
    Input: $ awk 'BEGIN{print tolower("GEEKSFORGEEKS")}'
    Output: geeksforgeeks
    
    

5. awk toupper(s)函数:将字符串s中的所有小写字符转成大写,并返回新的字符串。

    例子:
    Input: $ awk 'BEGIN{print toupper("geeksforgeeks")}'
    Output: GEEKSFORGEEKS
    
    

6. awk split(字符串, array, fieldsep)函数:将字符串分成由fieldsep分隔的部分,并将这些部分存储在array 中。第一部分存储在array[1] 中,第二部分存储在array[2] 中,依此类推。第三个参数fieldsep字符串值描述了在何处拆分字符串

    例子:
    Input: $ awk 'BEGIN{string="My Nationality Is Indian"; fieldsep=" "; n=split(string, array, fieldsep); for(i=1; i<=n; i++){printf("%s\n", array[i]);}}'
    Output: My
            Nationality
            Is
            Indian
    

说明:上述脚本将句子分解为单词,使用空格作为分隔单词的字符。