文章目录
前言
以下是10个实用的 awk
应用案例及代码说明,涵盖文本处理、数据统计、日志分析等常见场景,并附带示例输入和运行结果。
案例 1:统计文本文件的行数、词数、字符数
目标:模拟 wc
命令功能。
示例输入(demo.txt
):
Hello World
This is a test file
2023-08-21
代码:
awk '{
lines++
words += NF
chars += length($0) + 1 # +1 为换行符
}
END {
print "Lines:", lines, "Words:", words, "Chars:", chars
}' demo.txt
运行结果:
Lines: 3 Words: 8 Chars: 41
案例 2:提取 CSV 文件的特定列并计算总和
目标:提取第 3 列(金额)并求和。
示例输入(sales.csv
):
Name,Product,Price
Alice,Book,50
Bob,Pen,15
Charlie,Laptop,3000
代码:
awk -F',' 'NR>1 {sum += $3} END {print "Total Sales:", sum}' sales.csv
运行结果:
Total Sales: 3065
案例 3:格式化输出系统用户信息
目标:从 /etc/passwd
提取用户名和 Shell,按列对齐。
示例输入(/etc/passwd
片段):
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
alice:x:1000:1000:Alice:/home/ali