awk常用参数和使用示例
awk
是一个强大的文本处理工具,特别适用于处理结构化数据(如表格数据)。它能够基于模式匹配和条件执行操作。以下是awk
的常用参数和使用方法:
# 常用参数
-F
: 指定输入字段分隔符。
awk -F, '{print $1}' file # 以逗号作为分隔符,打印第一列
1
2
3
2
3
-v
: 定义变量,并将其传递给 awk
程序。
awk -v var=1 '{print $var}' file # 打印第一列
1
2
3
2
3
-f
: 从文件中读取 awk
脚本。
awk -f script.awk file
1
2
2
-W
: 提供特定的选项,例如 version
以查看版本信息。
awk -W version
1
2
3
2
3
# 常用命令和内置变量
print
: 打印指定的字段或文本。
awk '{print $1, $3}' file # 打印第一列和第三列
1
2
2
NR
: 当前记录(行)号。
awk '{print NR, $0}' file # 打印行号和整行内容
1
2
2
NF
: 当前记录中的字段数。
awk '{print $0, NF}' file # 打印整行内容和字段数
1
2
2
$0
: 当前记录的整个内容。
awk '{print $0}' file # 打印整行内容
1
2
2
$n
: 第 n
个字段的内容。
awk '{print $1}' file # 打印第一列
1
2
2
BEGIN
: 在处理任何输入行之前执行的操作。
awk 'BEGIN {print "Header"} {print $0}' file # 在处理文件内容之前打印 "Header"
1
2
2
END
: 在处理完所有输入行之后执行的操作。
awk '{sum += $1} END {print sum}' file # 计算第一列的总和并打印
1
2
2
# 条件和模式匹配
模式匹配: 仅处理匹配模式的行。
awk '/pattern/ {print $0}' file # 打印包含 "pattern" 的行
1
2
2
条件判断: 仅处理满足条件的行。
awk '$1 > 10 {print $0}' file # 打印第一列大于10的行
1
2
2
多条件判断:
awk '$1 > 10 && $2 == "foo" {print $0}' file # 打印第一列大于10且第二列等于"foo"的行
1
2
2
# 示例
打印文件中的所有行:
awk '{print $0}' file
1
2
2
打印文件中的第一列和第三列:
awk '{print $1, $3}' file
1
2
2
计算文件中所有数值的总和(假设每行有一个数值):
awk '{sum += $1} END {print sum}' file
1
2
3
2
3
打印包含特定模式的行:
awk '/pattern/ {print $0}' file
1
2
2
以冒号作为字段分隔符,打印第二列:
awk -F: '{print $2}' file
1
2
2
在处理文件之前和之后执行操作:
awk 'BEGIN {print "Start"} {print $0} END {print "End"}' file
1
2
2
这些是 awk
的一些基本用法。它非常适合处理和分析结构化文本数据。
![微信](http://pic.zzppjj.top/LightPicture/2023/02/cebf13bbcea9264d.jpg)
![支付宝](http://pic.zzppjj.top/LightPicture/2023/02/d98d15501306c7c4.jpg)
上次更新: 2024/07/24, 20:56:50