Linux下AWK命令使用的详细指南与示例

 更新时间:2024年11月26日 10:31:18   作者:熬了夜的程序员  
AWK 是 Linux 中功能强大的文本处理工具,用于模式扫描和处理,AWK 以其创建者的名字命名,特别适合处理如日志、CSV 文件或配置文件等结构化文本数据,本指南全面讲解了 AWK 的功能,感兴趣的小伙伴跟着小编一起来看看吧

简介

AWK 是 Linux 中功能强大的文本处理工具,用于模式扫描和处理。AWK 以其创建者(Aho、Weinberger 和 Kernighan)的名字命名,特别适合处理如日志、CSV 文件或配置文件等结构化文本数据。本指南全面讲解了 AWK 的功能,并通过实际示例展示其强大之处。

AWK 的主要特性

  • 模式匹配:处理文件中符合特定模式的行。
  • 字段操作:轻松访问和操作结构化文本中的特定字段。
  • 算术运算:在命令中直接执行计算。
  • 内置函数:支持字符串处理、数学运算等多种功能。
  • 可移植性:适用于大多数类 Unix 系统。

基本语法

awk 'pattern {action}' filename
  • pattern:决定是否对某行执行动作的条件。
  • 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.txt
  • BEGIN 块在处理任何行之前执行。
  • 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"}

使用外部变量

通过 -v 标志将变量传递给 AWK:

awk -v threshold=50 '$3 > threshold {print $1, $3}' file.txt

总结

AWK 是一个功能强大的文本处理工具,对于在 Linux 上处理数据的人来说至关重要。其简单性与强大功能的结合,使其在从简单的文本提取到复杂的数据转换的任务中都表现出色。

到此这篇关于Linux下AWK命令的详细指南与示例的文章就介绍到这了,更多相关Linux AWK命令用法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • shell之分离解析脚本的实现方法

    shell之分离解析脚本的实现方法

    这篇文章主要介绍了shell之分离解析脚本的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • Shell中使用exec命令的方法和用途

    Shell中使用exec命令的方法和用途

    本文主要介绍了Shell中使用exec命令的方法和用途,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • Linux下使用shell脚本自动执行脚本文件

    Linux下使用shell脚本自动执行脚本文件

    这篇文章主要介绍了Linux下使用shell脚本自动执行脚本文件的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-12-12
  • shell脚本之判断输入参数是否为整数值的实例

    shell脚本之判断输入参数是否为整数值的实例

    今天小编就为大家分享一篇shell脚本之判断输入参数是否为整数值的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • 阿里云主机一键安装lamp、lnmp环境的shell脚本分享

    阿里云主机一键安装lamp、lnmp环境的shell脚本分享

    这篇文章主要介绍了阿里云主机一键安装lamp、lnmp环境的shell脚本分享,需要的朋友可以参考下
    2014-07-07
  • Bash 脚本实现每次登录到 Shell 时可以查看 Linux 系统信息

    Bash 脚本实现每次登录到 Shell 时可以查看 Linux 系统信息

    这篇文章主要介绍了Bash 脚本实现每次登录到 Shell 时可以查看 Linux 系统信息,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友参考下吧
    2019-12-12
  • 获取两个日期间隔时间的shell脚本代码

    获取两个日期间隔时间的shell脚本代码

    获取两个日期间隔时间的shell脚本,对于正在研究shell操作日期的朋友来讲,这个小例子,值得研究
    2013-02-02
  • Linux 中的 Openssl命令及实例代码

    Linux 中的 Openssl命令及实例代码

    OpenSSL是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用
    2017-09-09
  • shell批量curl接口脚本的简单实现方法

    shell批量curl接口脚本的简单实现方法

    这篇文章主要跟大家介绍了关于shell批量curl接口脚本的简单实现方法,文中通过示例代码介绍的非常详细,对大家学习或者使用shell具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2017-08-08
  • Shell 批量进程判断是否存在

    Shell 批量进程判断是否存在

    本文主要介绍了Shell 批量进程判断是否存在,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09

最新评论