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/ 可以匹配多个关键词