如何使用 awk 命令
你好。
我叫冈崎,来自系统解决方案部。
这次我会写一下awk命令,它是检查日志时使用的。
awk 命令是什么?
在处理由空格或特定字符分隔的多行数据时
仅输出特定列中的数据或计算总值
awk '{print$[要输出的列数];}'
例如,我有一个如下所示的文件。
测试.txt 1 2 3 5 1 2 3 6 1 2 3 7 1 2 3 8
如果只想显示第一列,可以按如下方式输出。
猫测试.txt | awk '{print$1;}' 1 1 1 1
关于使用方法
使用任意字符作为分隔符时
awk -F [分隔符] '{print$1;}'
- 使用示例
仅显示第二列
sed -e 's/ /:/g' test.txt | awk -F ':' '{print$2;}' 2 2 2 2
输出行号时
awk '{print NR $1;}'
仅显示第三列
sed -e 's/ /:/g' test.txt | awk -F ':' '{print NR $3;}' 13 23 33 43
然而,这很难理解,所以执行以下操作
sed -e 's/ /:/g' awk -F ':' '{print NR " " $3;}' 1 3 2 3 3 3 4 3
当输出特定列具有特定字符串的行时
awk '$1==[任意字符]'
第4行只显示5
sed -e 's/ /:/g' awk -F ':' '$4=="5" {print NR " " $4;}' 1 5
在相反的情况下
sed -e 's/ /:/g' test.txt | awk -F ':' '$4!="5" {print NR " " $4;}' 2 6 3 7 4 8
如果您想对特定列中的数字求和
awk '{sum+=$1;}END{打印总和;}'
显示第一行的总计
sed -e 's/ /:/g' test.txt awk -F ':' '{sum+=$1;}END{打印总和;}' 4
对于平均值
sed -e 's/ /:/g' awk -F ':' '{sum+=$1;}END{print sum/NR;}' 1
概括
我认为在操作过程中打开日志文件是很常见的,但如果你
格式化文件并打开它,会更容易看到,而且
我认为统计错误和访问会更有效。
我认为如果你在日常操作中将这个awk与其他命令结合使用,可以让你的操作更加高效。
如果您觉得这篇文章有帮助,请点赞!