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日

相关文章

  • Oracle动态视图v$active_session_history实战示例

    下面是关于“Oracle动态视图v$active_session_history实战示例”的完整攻略: 一、v$active_session_history简介 v$active_session_history是Oracle动态视图之一,用于记录正在运行的会话的历史信息,其中包括当前会话正在执行的SQL语句、等待事件等重要信息。由于v$active_sess…

    database 2023年5月21日
    00
  • ThinkPHP中Session用法详解

    ThinkPHP中Session用法详解 什么是Session? Session是一种在Web服务器上跟踪用户会话的机制。它使用一个称为session ID的值来唯一标识每个用户的会话。这个session ID通常是存储在cookie或URL参数中。使用session,您可以存储在多个页面或请求之间保持用户数据,而无需以某种方式存储它们在客户端之外。 Thi…

    database 2023年5月22日
    00
  • MySQL中组合字段之concat()

    当我们需要将多个字段或字符串连接成一个字符串时,可以使用 MySQL 中的 concat() 函数。它可以将多个参数拼接成一个字符串,并返回拼接后的字符串。 concat() 函数的使用方法 concat() 函数可以接受多个参数,每个参数都可以是字段名称、字符串或者表达式。它们会按照参数传递的顺序依次拼接成一个字符串。下面是 concat() 函数的语法:…

    database 2023年5月22日
    00
  • PHP之PDO_MYSQL扩展安装步骤

    转载地址:http://www.cnblogs.com/qq78292959/p/4084868.html 看到CakePHP文档要求安装pdo_mysql扩展,于是就尝试安装了一下。 这里我的系统是CentOS 6.0。如果你的系统是其他版本的Linux/Unix,可以参考。如果你的系统是Windows的,抱歉,以下内容不适合你,请移步。 首先是下载pdo…

    MySQL 2023年4月13日
    00
  • 常见数据库mysql、oracle和DB2中is null 和 =null 的区别

    问题背景:前段时间我在测试过程中上传一个文件,文件内容要求判断为空,结果出现了报错,跟踪原因发现是开发误将oracle中对null的判断方式写成了=null,下面梳理一下不同数据库对该问题的处理方法: 1、mysql MySQL 中 null 不代表任务实际的值,类似于一个未知数。 2.执行对比 2.1 查询条件为 =null    执行之后,发现返回行数为…

    MySQL 2023年4月11日
    00
  • Oracle实现分页查询的SQL语法汇总

    下面是“Oracle实现分页查询的SQL语法汇总”的详细攻略: 1. 简介 分页查询是常用的查询方式,它常用于显示大量数据的时候,可以分批次的加载数据,从而提高用户的交互体验。Oracle实现分页查询的SQL语法很灵活,下面介绍几种常见的实现方式。 2. SQL语法 2.1 LIMIT语句 MySQL中可以使用LIMIT语句实现分页查询,但是Oracle中并…

    database 2023年5月21日
    00
  • mysqldump命令导入导出数据库方法与实例汇总

    mysqldump命令导入导出数据库方法与实例汇总 一、mysqldump命令概述 mysqldump是MySQL数据库备份工具,可以用来导出MySQL数据库的内容,导出的内容包括表结构、数据和数据库对象等,采用SQL语法描述。本文将讲解在Linux系统中使用mysqldump命令导入导出数据库的方法与实例,并给出几个常用的示例。 二、基本语法格式 mysq…

    database 2023年5月22日
    00
  • sql2008 hql语句翻译过来的分页语句介绍

    首先来讲解一下分页语句是什么。 分页语句可以将数据库中的数据分页展示,比如在网站中展示文章列表时,我们可能需要将文章进行分页展示,这时我们可以使用分页语句,让用户可以方便地查看到自己需要的文章。 对于SQL Server 2008,我们可以使用以下语句来实现分页: SELECT TOP (@pageSize) * FROM (SELECT ROW_NUMBE…

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