三剑客----awk 笔记及相关问题

1.sed 可以实现非交互式的字符串替换,grep 能够实现有效的过滤功能。 与两者相比,awk 是一款强大的文本分析工具,在对数据分析并生成报告时,显得尤为强悍。

awk的功能:

分析处理日志

统计数据 

快速汇总系统运行信息 

根据指定内容按照期望格式输出

具有强大的脚本语言表达能力 支持循环 条件数组 等语法分析一些复杂的数据

比较擅长处理格式化的文本比如日志一些格式数据等

eg:awk '{printf "%-4s %-4s %-6s %-8s\n",$1,$2,$3,$4}' file.txt

%s表示字符串占位符 -4 表示列宽度 且左对齐

$0在awk中表示整行内容

2.awk的一些内置变量 更方便我们处理数据

NF表示当前行有几列

NR表示当前第几行

FS指定输入分隔符

OFS:指定输出分隔符

-F:指定分隔符 默认为空格 如果需要指定多个分隔符,可以使用

[;:]相当于grep中的可以任选一个去分隔

可以使用正则匹配:awk '$3 ~/root/  || NR ==1 {print NR,$0}'

~其实就是正则表达式的匹配

awk 也可以像grep 一样匹配某一行

awk '/aug/' file.txt

/aug|dec/ 可以匹配多个关键词

模式取反: awk '$# !~ /root/ {print $0}'  file.txt

3.if 语句

三剑客----awk 笔记及相关问题_第1张图片

 

 

统计:

三剑客----awk 笔记及相关问题_第2张图片

 

三剑客----awk 笔记及相关问题_第3张图片

 对字符串操作:

三剑客----awk 笔记及相关问题_第4张图片

 

awk 内置了大量的有用函数功能,也支持自定义函数,允许你编写自己的函数来扩展内置函数。 这里只简单罗列一些比较常用的字符串函数:

index(s, t) 返回子串 t 在 s 中的位置

length(s) 返回字符串 s 的长度

split(s, a, sep) 分割字符串,并将分割后的各字段存放在数组 a 中 substr(s, p, n) 根据参数,返回子串

tolower(s) 将字符串转换为小写

toupper(s) 将字符串转换为大写

你可能感兴趣的:(笔记,unix,bash,linux,awk,运维开发)