跳到主要内容

[toc]

awk函数

1.awk内置函数

1.1 gsub

1.1.1语法

gsub(/要替换的内容/,'替换后的内容',替换哪一列)

1.1.2 示例

///etc/passwd文件中root一行中的冒号替换为加号
[root@test1 ~]# awk '$1~/^root/{gsub(/:/,"+",$NF);print $0}' /etc/passwd
root+x+0+0+root+/root+/bin/bash

1.2 substr

1.2.1 语法

substr(某一列,从第几个字符开始,截取几个字符结束)

1.2.2 示例

//简单使用示例
[root@test1 ~]# echo 'abcdefg'|awk '{print substr($1,3,3)}'
cde

1.3 split

1.3.1 语法

split(某一列,数组名,/要替换的内容/)

把某一列通过正则表达式切割然后放到数组中

1.3.2 示例

[root@test1 ~]# echo GET /a/b/c/d/e.jpg|awk '{split($2,a,/\./);print a[1]}'
/a/b/c/d/e
[root@test1 ~]# echo GET /a/b/c/d/e.jpg|awk '{split($2,a,/\./);print a[2]}'
jpg

1.4 system

1.3.1 含义

awk调用shell命令

1.3.2示例

//⚠️命令外必须用双引号包裹
awk 'BEGIN{system("ls")}'

2.awk自定义函数

//编辑awk文件function.awk
cat >function.awk<<EOF
#!/usr/bin/awk
function sum(num1,num2)
{
s=num1+num2;
print s;
}

BEGIN{
sum(1,2)
}
EOF

//运行function.awk文件
[root@test1 ~]# awk -f function.awk
3