`
TonyLee0329
  • 浏览: 31345 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

AWK工具学习(二)-运算符与表达式

阅读更多
上一部分主要是认识awk编程模型及简单示例,见http://tonylee0329.iteye.com/admin/blogs/1810758
本节主要讨论awk中的运算符和表达式
A.1 记录和域
awk中认为文本文件的一行即是一条记录,一条记录由多个域构成,
以下:awk test by tony
包含四个域,由空格进行分割。
用'$n'标识域的值,如$1=awk.
注:$0表示全部域。
域操作符后面还可以跟变量,示例:
[lidc@hd66 awk-experiment]$ echo 'awk test by tony'>input
[lidc@hd66 awk-experiment]$ cat input 
awk test by tony
[lidc@hd66 awk-experiment]$ awk 'BEGIN {start=1;end=3} {print $(start+end)}' input
tony

awk默认的分隔符是空格,TAB被认为是连续的空格键来处理,我们可以使用-F来自定义分隔符
awk -F"~==~" '{...}' input
还可以预先设置awk的环境变量FS,指定分隔符
[lidc@hd66 awk-experiment]$ awk 'BEGIN {FS=","} {print $0}' input
tony ,    23 ,    male
emma ,    23 ,    female
[lidc@hd66 awk-experiment]$ awk 'BEGIN {FS=","} {print $2}' input
    23 
    23 

A.2 运算符
awk运算符常见的都有如:
大于    >
小于    <
大于等于    >=
小于等于    <=
等于    ==
不等于    !=
逻辑或    ||
逻辑与    &&
逻辑非    !
不常见的是以下两个
~    匹配正则表达式
!~    不匹配正则表达式
举个匹配正则的例子:
[lidc@hd66 awk-experiment]$ awk -F":" '$0~/root/' /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin

记录中只要匹配root即可

awk的条件语句及运算符使用示例:
[lidc@hd66 awk-experiment]$ awk -F":" '{if($3==10 || $4==0) print $0}' /etc/passwd
root:x:0:0:root:/root:/bin/bash
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin

A.3 表达式
awk表达式用于存储、操作和获取数据,一个awk表达式可由数值、字符常量、变量、操作符、函数和正则自由组合而成
变量名:
只能包含字母、数字、下划线
不能以数字开头
区分大小写
变量可进行加、减、乘、除、乘方、取模等操作
小练习:求学生三科平均成绩
[lidc@hd66 awk-experiment]$ cat score 
tony ,    23 ,    male,90,90,93
emma ,    23 ,    female,100,80,90
[lidc@hd66 awk-experiment]$ cat getAvgScore.awk 
#!/bin/awk    -f
BEGIN {FS=","}
{
    total=$4+$5+$6
    avg=total/3
    print $1,avg
}
[lidc@hd66 awk-experiment]$ awk -f getAvgScore.awk > students-score 

[lidc@hd66 awk-experiment]$ awk -f getAvgScore.awk score > students-score 
[lidc@hd66 awk-experiment]$ cat students-score 
tony  91
emma  90
0
0
分享到:
评论

相关推荐

    AWK语言学习资料--基础知识

    AWK是一种强大的文本分析工具,尤其在处理结构化文本文件如日志、配置文件时,其强大之处得以显现。在Linux和Unix环境中,AWK常用于数据处理和报告生成。以下将详细介绍AWK语言的基础知识及其重要性。 1. **基本...

    awk详细用法小结awk awk

    #### 五、awk运算符 awk支持多种运算符,包括算术运算符、赋值运算符、比较运算符和逻辑运算符,以及正则表达式运算符。 - **算术运算符**:`+`、`-`、`*`、`/`、`%`、`^`。 - **赋值运算符**:`=`、`+=`、`-=`、`...

    awk脚本学习快速入门

    除了正则表达式,awk还支持逻辑运算符和比较运算符进行条件测试。例如,`/pattern/ {if (condition) action}`结构可以在满足特定条件时执行特定动作。 六、sed与awk的区别 sed主要关注行级别的替换操作,而awk更...

    awk使用手册

    在UNIX世界里,存在许多强大的文本处理工具,其中awk作为一款出色的模式扫描与处理语言,却往往被人们所忽视。它的名字来源于三位创造者的名字首字母——Aho、Weinberg以及Kernighan。不同于sed或grep等其他命令行...

    linux awk学习笔记

    Linux中的`awk`是一个强大的文本分析工具,由Alfred Aho、Brian Kernighan和Peter Weinberger三位开发者创建,因此得名。`awk`的主要功能是处理文本和数据,通过匹配特定模式对文件中的行进行操作。在Linux系统中,...

    linux-awklinux-awk

    以上内容全面地介绍了 Awk 的基础概念、命令格式、选项、环境变量、运算符、记录与域、正则表达式等重要知识点,并通过实际示例加深理解。掌握这些知识可以帮助您更好地在 Linux/Unix 环境下使用 Awk 处理文本和数据...

    linux下awk工具的使用

    ### Linux 下 awk 工具的使用详解 #### 1. awk 简介 `awk` 是一款在 Linux/Unix 环境下极其强大的文本处理工具,它能够灵活地处理各种格式的数据文件,适用于数据筛选、分析及格式转换等多种场景。`awk` 的主要优势...

    awk学习使用笔记及举例

    awk运算符 awk支持各种运算符,包括算术运算符、关系运算符、逻辑运算符等。例如: - 算术运算符: `+`, `-`, `*`, `/`, `%`, `^` - 关系运算符: `, `, `&gt;`, `&gt;=`, `==`, `!=` - 逻辑运算符: `&&`, `||`, `!` #### ...

    AWK使用手册.pdf

    AWK是一种优秀的文本处理工具,它在Linux和UNIX环境下广泛用于数据分析和文本处理。AWK语言由Aho, Weinberger, 和 Kernighan三位创建者的名字首字母而得名。它允许用户在命令行模式下或通过编写程序脚本来分析和处理...

    awk学习手册.docx

    awk是Linux/Unix环境中强大的文本分析工具,它允许用户基于输入数据的特定模式进行操作。在深入探讨awk的各个方面之前,我们先理解一下它的基本概念。 1. **awk 简介** awk的主要功能是从文件或标准输入中读取一行...

    linux正则表达式awk详解

    Linux正则表达式与awk详解 在Linux系统中,正则表达式和awk工具是文本处理的强大武器,正则表达式提供了一种灵活的搜索和匹配模式,而awk则是一个强大的文本分析工具,它可以对文本文件进行模式扫描和处理。本文将...

    linux awk学习

    ### Linux Awk 学习知识点详解 #### 一、Awk 简介与基本用法 Awk 是一种在 Unix 和类 Unix 操作系统上广泛使用的文本处理工具,能够帮助用户快速处理文本数据,执行复杂的文本分析任务。Awk 的主要功能包括模式...

    awk学习笔记

    ### awk学习笔记 #### 1. awk简介 awk是一种强大的编程语言,主要用于Linux/Unix环境下的文本和数据处理。它可以处理来自标准输入、一个或多个文件,甚至是其他命令的输出结果。由于支持用户自定义函数和动态正则...

    Linux AWK 学习资料

    Linux中的AWK是一种强大的文本分析工具,用于对文件或数据流进行模式匹配和处理。它在系统管理和数据分析中被广泛使用。AWK的工作原理是基于用户定义的规则(也称为模式)来处理输入数据,根据这些规则进行筛选、...

    awk命令详解大全

    - **awk的常规表达式元字符**:awk支持正则表达式的使用,包括通配符、量词等。 - **awk算术运算符**:支持加减乘除、取模等算术运算。 - **awk允许的测试**:可以进行字符串比较、数值比较等操作。 - **awk的操作符...

    AWK工具脚本整理

    ### AWK工具脚本整理知识点 #### 一、AWK简介 AWK是一种强大的文本处理工具,主要用于在Unix和类Unix系统中进行数据提取和报告生成。它支持使用简单的编程语句来处理文本文件中的模式匹配、字段提取等功能。本文档...

    AWK 中文教程

    ### AWK 中文教程知识点概览 #### 一、AWK简介与背景 - **AWK** 是一种脚本语言,专门设计用于处理文本数据,尤其是格式化的数据(如CSV文件)。...以上是对AWK中文教程的部分内容总结,希望对学习AWK有所帮助。

Global site tag (gtag.js) - Google Analytics