第2.2节:运行AWK脚本方式
1 第2.2节:运行AWK脚本方式
AWK
脚本可以通过命令行方式和脚本文件方式来运行,根据用户的使用场景,可以灵活的使用最便利的方式,命令行方式对于处理逻辑简单的场景(如:1行脚本搞定的场景)非常方便和清晰,而脚本方式则对处理逻辑比较复杂的场景(建议:超过3个语句时使用脚本方式)比较友好。
1.1.1 命令行方式
在命令行中直接输入 AWK
命令来执行简单的文本处理任务,适合快速完成一些临时性的操作。其基本语法如下:
awk 'pattern { action }' input_file
pattern
:用于匹配输入文件中的行,它可以是正则表达式、比较表达式、也可以什么都不写(input_file每行文本都处理)等。action
:是要对匹配行执行的操作,通常是一些AWK
代码。input_file
:是要处理的输入文件。
1.1.1.1 示例
假设有一个名为 data.txt
的文件,内容如下:
水果 单价(元)
apple 10
banana 20
cherry 30
现在要打印出第二列大于 15 的行,可以使用以下命令:
awk '$2 > 15 { print $0 }' data.txt
在这个命令中:
$2 > 15
是模式,用于匹配第二列大于 15 的行。{ print $0 }
是动作,用于打印匹配的整行内容($1表示第1列、$2表示第2列… 依次类推)。data.txt
是输入文件。
1.1.2 脚本文件方式
当 AWK
脚本比较复杂,包含多个模式 - 动作块以及 BEGIN
和 END
块时,将脚本保存为文件并运行更为方便,有些场景是需要把所有数据源都读取和预处理完,再在END
块中汇总处理。具体步骤如下:
1.1.2.1 1. 创建脚本文件
使用文本编辑器创建一个以 .awk
为扩展名的文件,例如 script.awk
,并编写 AWK 脚本。以下是一个示例脚本:
#!/usr/bin/awk -f
# BEGIN 块,在处理文件前执行
BEGIN {
total = 0
print "Processing data..."
}
# 模式 - 动作,对每一行执行操作
{
total += $2
print $1, "has a value of", $2
}
# END 块,在处理完文件后执行
END {
print "Total value:", total
}
1.1.2.2 2. 给脚本文件添加执行权限
在终端中使用 chmod
命令给脚本文件添加执行权限:
chmod +x script.awk
1.1.2.3 3. 运行脚本
使用以下命令来运行脚本:
./script.awk data.txt
或者使用 awk
命令指定脚本文件:
awk -f script.awk data.txt
通过上述两种方式,你可以根据具体需求选择合适的方法来运行 AWK 脚本。命令行方式适合快速简单的任务,而脚本文件方式则更适合复杂的、需要重复使用的脚本。
作者声明:本文用于记录和分享作者的学习心得,可能有部分文字或示例来自AI平台,如:豆包、DeepSeek(硅基流动)(注册链接)等,由于本人水平有限,难免存在表达错误,欢迎留言交流和指教!
Copyright © 2022~2025 All rights reserved.