网站seo网络优化,建设银行网站可以更改个人电话,手机网站引导页js,app开发报价单目录 简介AWK 的主要特性基本语法示例1. 打印文件的所有行2. 打印特定字段3. 打印匹配模式的行4. 基于条件过滤并打印5. 使用内置变量6. 执行算术运算7. 字符串操作8. 使用 BEGIN 和 END 块9. 处理分隔符文件 高级功能自定义脚本使用外部变量 总结 简介
AWK 是 Linux 中功能强… 目录 简介AWK 的主要特性基本语法示例1. 打印文件的所有行2. 打印特定字段3. 打印匹配模式的行4. 基于条件过滤并打印5. 使用内置变量6. 执行算术运算7. 字符串操作8. 使用 BEGIN 和 END 块9. 处理分隔符文件 高级功能自定义脚本使用外部变量 总结 简介
AWK 是 Linux 中功能强大的文本处理工具用于模式扫描和处理。AWK 以其创建者Aho、Weinberger 和 Kernighan的名字命名特别适合处理如日志、CSV 文件或配置文件等结构化文本数据。本指南全面讲解了 AWK 的功能并通过实际示例展示其强大之处。
AWK 的主要特性
模式匹配处理文件中符合特定模式的行。字段操作轻松访问和操作结构化文本中的特定字段。算术运算在命令中直接执行计算。内置函数支持字符串处理、数学运算等多种功能。可移植性适用于大多数类 Unix 系统。
基本语法
awk pattern {action} filenamepattern决定是否对某行执行动作的条件。action指定对匹配行执行的代码块。filename要处理的输入文件。
示例
1. 打印文件的所有行
awk {print} file.txt此命令打印 file.txt 的所有行。{print} 操作适用于每一行。
2. 打印特定字段
AWK 使用 $1、$2 等表示一行中的字段。
awk {print $1, $3} file.txt打印 file.txt 每行的第一和第三字段。
3. 打印匹配模式的行
awk /pattern/ file.txt打印包含“pattern”的行。
4. 基于条件过滤并打印
awk $3 50 {print $1, $3} file.txt打印第三字段大于 50 的行的第一和第三字段。
5. 使用内置变量
NR当前记录行的编号。NF当前记录中的字段数量。
awk {print NR, NF, $0} file.txt打印行号、字段数和整行内容。
6. 执行算术运算
awk {sum $3} END {print Total:, sum} file.txt计算并打印所有行的第三字段的总和。
7. 字符串操作
awk {print toupper($1)} file.txt将每行的第一个字段转换为大写。
8. 使用 BEGIN 和 END 块
awk BEGIN {print Start Processing} {print $0} END {print End Processing} file.txtBEGIN 块在处理任何行之前执行。END 块在处理完所有行后执行。
9. 处理分隔符文件
默认情况下AWK 使用空格分割字段。可以使用 -F 指定自定义分隔符。
awk -F , {print $1, $3} file.csv处理 CSV 文件并打印第一和第三字段。
高级功能
自定义脚本
将 AWK 脚本保存到文件中以便重复使用
script.awk
BEGIN {print Name Score}
$3 60 {print $1, $3}
END {print Processing Complete}运行脚本
awk -f script.awk file.txt使用外部变量
通过 -v 标志将变量传递给 AWK
awk -v threshold50 $3 threshold {print $1, $3} file.txt总结
AWK 是一个功能强大的文本处理工具对于在 Linux 上处理数据的人来说至关重要。其简单性与强大功能的结合使其在从简单的文本提取到复杂的数据转换的任务中都表现出色。