awk基础知识小结

AWK基础知识小结

AWK是一个强大的文本处理工具,它支持文本搜素、文本提取、文本处理、文本格式化等文本处理功能,被广泛应用于Linux下的文本处理和数据分析中。下面我们来详细讲解AWK的基础知识。

AWK执行过程

awk执行过程是先按照指定分隔符把每行数据解析成多个字段,然后对每一个字段执行指定操作,最后输出结果。其基本格式为:

awk [options] 'pattern {command}' file

其中,pattern用于指定查找条件,command用于指定处理操作,file为需要处理的文件。

例如,下面的命令用来输出test.log文件的第3列数据:

awk '{print $3}' test.log

AWK常用选项

选项 说明
-F 指定字段分隔符,默认为“空格”
-v 定义变量
-f 指定脚本文件名
-NR 对读入的行数计数
-NF 对当前行的字段个数进行计数
-BEGIN 在开始处理之前执行语句一次
-END 在处理结束后执行语句一次

AWK常用函数

常用字符串函数

函数 说明
substr 返回子字符串
match 匹配子字符串
index 返回目标字符/子串在字符串中的位置
length 返回字符串长度

例如,下面的命令用来输出test.log文件的第2列数据中前3个字符:

awk '{print substr($2,1,3)}' test.log

常用数学函数

函数 说明
int 向下取整
sqrt 求平方根
log 求自然对数
rand 返回一个随机数

例如,下面的命令用来在[0, 100]范围内生成5个随机数:

awk 'BEGIN {for(i=1;i<=5;i++) print int(rand()*100)}'

AWK条件语句

AWK支持if语句,常用于根据输入进行判断并执行相应的处理操作。

例如,下面的命令用来输出test.log文件的第1列数据,但仅输出的值大于10的行:

awk '{if($1>10) print $1}' test.log

AWK循环语句

AWK支持for和while两种循环语句,常用于遍历输入数据并执行相应的处理操作。

例如,下面的命令用来输出test.log文件的第3列数据中偶数行:

awk '{for(i=1;i<=NF;i++) if(i%2==0) print $i}' test.log

示例

  1. 统计一个文件中每个单词的数量:
awk '{for(i=1;i<=NF;i++) {a[$i]++}} END {for(k in a) print k,a[k]}' test.txt
  1. 计算一个csv文件中某一列数值的平均值:
awk -F, '{sum+=$3} END {print sum/NR}' test.csv

以上就是AWK基础知识小结的详细介绍。通过学习,相信大家已经能够灵活运用AWK进行文本处理和数据分析了。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:awk基础知识小结 - Python技术站

(0)
上一篇 2023年5月22日
下一篇 2023年5月22日

相关文章

  • SQL Server 2017无法连接到服务器的问题解决

    当我们在连接SQL Server 2017时,可能会遇到无法连接到服务器的问题,这时需要我们根据具体的情况进行分析,找到问题的根源,并进行解决。本文将详细介绍如何解决SQL Server 2017无法连接到服务器的问题。 步骤一:检查SQL Server是否正常运行 首先我们需要确定SQL Server 是否正常运行,可以使用以下命令查看SQL Server…

    database 2023年5月21日
    00
  • 从一个MySQL的例子来学习查询语句

    下面是学习MySQL查询语句的完整攻略,包含两条示例说明: 1. 确定查询需求 在开始编写查询语句之前,我们需要明确自己的查询需求。例如,需要查询哪些表格、需要查询哪些字段,查询的条件是什么,需要按照哪些字段排序。只有理清这些需求,才能更加清晰地编写查询语句。 2. 了解查询语句的基本结构 一个典型的查询语句大致由以下几个部分组成: SELECT colum…

    database 2023年5月22日
    00
  • MySQL数据库服务器端核心参数详解和推荐配置

    MySQL数据库服务器端核心参数详解和推荐配置 MySQL是一种流行的关系数据库管理系统,为了确保其最佳性能,需要对其服务器端的核心参数进行配置。在本篇文章中,我们将对MySQL数据库服务器端的核心参数进行详细讲解和推荐配置。 连接处理参数 连接处理参数对于MySQL服务器的性能有着至关重要的影响,以下是一些重要的连接处理参数及其推荐配置: max_conn…

    database 2023年5月21日
    00
  • mysql数据库sql优化原则(经验总结)

    MySQL数据库SQL优化原则(经验总结) MySQL是广泛使用的关系型数据库,而SQL优化是MySQL性能优化的重要组成部分。下面是MySQL数据库SQL优化的原则和经验总结。 1. 避免使用SELECT *查询 SELECT *从数据库中取出所有的列,包括不需要的和无关的列,会浪费数据库的资源。最好只查询需要的列,将查询结果缩小到最小。 示例: — 不…

    database 2023年5月19日
    00
  • OneDrive 和 MiMedia

    一、OneDrive OneDrive是什么? OneDrive 是由微软公司推出的云存储服务,用户可以在其中创建自己的账户,并将各种形式的文件上传进去,以实现云端备份、共享、协作等功能。 OneDrive如何使用? 首先,用户需要注册一个 Microsoft 账户,然后使用该账户登录 OneDrive 官网。登录后,用户可以在 OneDrive 界面中创建…

    database 2023年3月27日
    00
  • PHP基于mssql扩展远程连接MSSQL的简单实现方法

    下面是“PHP基于mssql扩展远程连接MSSQL的简单实现方法”的完整攻略: 1. 确认mssql扩展已安装 在远程连接 MSSQL 数据库之前,需要在使用该扩展的 PHP 环境中安装 mssql 扩展。可以通过以下命令检查是否已经安装了 mssql 扩展。 php -m | grep mssql 如果输出 mssql 则表示已安装 mssql 扩展,否则…

    database 2023年5月22日
    00
  • 详解MySQL多表关联更新

    MySQL多表关联更新,是指在多个表之间建立关联关系,并在其中一个表中更新与另一个表相关的数据。例如,我们有两个表:用户表(users)和订单表(orders)。用户表中存储了用户的基本信息,订单表中存储了用户的订单信息(比如订单编号、用户ID、订单金额等)。如果我们要更新用户表中的数据(比如用户的名字),同时更新相关订单表中的数据(比如订单中的用户姓名需要…

    MySQL 2023年3月10日
    00
  • MySQL单表恢复的步骤

    MySQL单表恢复指的是在数据库中恢复某个表的数据,而不是整个数据库的数据。下面是MySQL单表恢复的步骤: 确认需要恢复的表首先,需要确认需要恢复的表名、数据库名、数据文件名等信息。可以通过查看备份文件、数据库或日志记录等方式获取这些信息。 停止MySQL服务在进行恢复前,需要停止MySQL服务,以避免对正在运行的数据进行写入,从而导致数据丢失或损坏。 备…

    database 2023年5月22日
    00
合作推广
合作推广
分享本页
返回顶部