如何使用 awk 命令

大家好,
我是系统解决方案部的冈崎。
这次,我将为大家介绍awk命令,该命令也用于检查日志。
awk 命令是什么?
在处理以空格或特定字符分隔的多行数据时
计算总值
awk '{print$[要输出的列数];}'
例如,有一个类似这样的文件:
test.txt 1 2 3 5 1 2 3 6 1 2 3 7 1 2 3 8
如果只想显示第一列,可以按如下方式操作:
cat test.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' test.txt | awk -F ':' '{print NR " " $3;}' 1 3 2 3 3 3 4 3
输出特定列包含特定字符串的行:
awk '$1==[任意字符]'
第四行只显示数字 5。
sed -e 's/ /:/g' test.txt | 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{print sum;}'
在第一行显示总数
sed -e 's/ /:/g' test.txt | awk -F ':' '{sum+=$1;}END{print sum;}' 4
就平均值而言
sed -e 's/ /:/g' test.txt | awk -F ':' '{sum+=$1;}END{print sum/NR;}' 1
概括
在操作过程中,您可能需要频繁打开日志文件,但
在打开文件之前对其进行格式化,可以使其更易于阅读,并使
您能够更高效地汇总错误和访问信息。
将此 awk 命令与其他命令结合使用,将有助于提高日常操作效率。
如果您觉得这篇文章有用,请点击【点赞】!
1