[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