awk
基本语法(Synopsis)
awk [OPTIONS] 'PROGRAM' [FILE ...]
awk [OPTIONS] -f PROGRAM_FILE [FILE ...][] 表示可选项,... 表示可重复;大写名称表示需要替换的参数。
基本功能与推荐用法
awk 按“记录和字段”处理文本,适合列选择、过滤、统计和简单报表。 以下示例使用可移植语法,在 GNU awk 和常见 awk 实现中均可工作。
awk '{print $1}' file.txt
awk -F, '{print $1, $3}' data.csv
awk '$3 > 100 {print $1, $3}' data.txt
awk '{sum += $2} END {print sum}' data.txt
awk 'BEGIN {FS=OFS=","} {print $1, toupper($2)}' data.csv
awk '{count[$1]++} END {for (k in count) print k, count[k]}' data
ps -ef | awk '$8 ~ /node/ {print $2, $8}'推荐:
- 使用
-F设置输入分隔符,使用OFS设置输出分隔符。 - Shell 值通过
-v安全传入:
awk -v limit=100 '$2 > limit' data.txt- 正式 CSV 可能包含引号、换行和转义,不能简单按逗号切分,应使用 CSV 解析器。
示例中的选项、参数与子命令
本表解释本页示例实际出现的选项、参数、子命令及必要的辅助命令语法。
| 语法元素 | 含义 |
|---|---|
-F SEP | 指定输入字段分隔符。 |
-v NAME=VALUE | 在执行程序前设置 awk 变量。 |
BEGIN { ACTION } | 在读取输入前执行一次。 |
END { ACTION } | 在全部输入处理完成后执行一次。 |
$0 / $N | 分别表示整条记录和第 N 个字段。 |
PATTERN { ACTION } | 仅对匹配 PATTERN 的记录执行 ACTION。 |
~ REGEXP | 判断字符串是否匹配正则表达式。 |
-f PROGRAM_FILE | 从 PROGRAM_FILE 读取 awk 程序。 |
ps -ef | ps 的完整格式进程列表;e 表示全部进程,f 表示完整格式。 |