一 空白和注释:

(1)注释:awk里的注释以#开始到该行结束。

(2)空白:任何地方都可以有空白,也允许任意长度的空白,适时的使用空行与缩进,会增进程序的可读性。

二 字符串与字符串表达式:

(1)字符串:

1.awk里的字符串常量以引号定界,如:"hello world"。

2.awk字符串包含零至多个字符,且在字符串的长度上没有限制,视可用内存而定。

3.awk提供许多内建函数来处理字符串,详见awk(五)函数。

4.字符串的比较,用的是传统的==、!=、<、<=、>、>=等,返回1为真,0为假。

5.awk无特殊的字符串连接运算符,即两个字符串会自动连接在一起。如:s="hello" "world"。

6.将数字转化为字符串:n=123,s="" n,把“123”赋给s。

7.字符串转数字:s="123",接着n=0+s,将数值123赋给n。


(2)字符串表达式:

1.awk的强大在于对正则表达式的支持。

2.有两个运算符:~(匹配)和!~(不匹配)。

3.正则表达式常量可以用:引号或斜杠定界。如:"ABC"~/[A-Z]/。斜杠形式常见。


三 数值与数值表达式:

(1)数值:awk里的数字,都以双精度的浮点数表示。

1.因为都是浮点数表示,所以计算次序很重要。

2.awk的数值操作符(优先级由大到小):可以用括号控制计算次序。


(2)awk提供一些通用的基本数学函数。如:int():返回其参数的整数部分,sqrt()等等。


四 标量变量:

(1)标量变量:保存单一值的变量。

1.变量无需事先声明。在使用时,自动创建。

2.awk变量名称必须以ASCII字符或下划线开始。

3.awk对变量名大小写敏感。建议:局部变量全部小写,全局变量第一个字母大写,内建变量则全是大写。

(2)常用内建变量:


五 数组变量:

(1)awk允许以任意数字或字符串表达式作为数组索引,元素不必是相同类型。

1.awk里的数组无需声明和配置:数组的存储空间在引用新元素时会自动增长。

2.数组的存储空间是稀疏(sparse)的:只有被引用到的元素才会配置。例如:a[1]="sss",后接a[1000]="aaa",而不必填充2到999。

3.awk通过“以逗号分隔的索引列表”看作一个字符串,使用多个索引模拟数组。如:array[lyr,23,man]="no1"。

(2)删除元素和数组:

1.删除元素:delete array[index]。

2.删除数组:delete array。

六 命令行参数:

(1)awk内建变量:

1.ARGC(参数计数)。

2.ARGV(参数向量)。

3.参数值存储在0、1、...、ARGC-1,且ARGV[0]是awk程序本身的名称。

4.与-f与-v选项结合的参数是不可使用的,任何命令行程序也不可使用。

5.awk一见到特殊--选项,它会立即停止将参数解释为选项。


七 环境变量:

(1)awk提供访问内建数组ENVIRON中所有环境变量:

1.awk 'BEGIN { print ENVIRON["HOME"];print ENVIRON["USER"] }'










awk(二)awk程序元素相关推荐

  1. linux下字符串处理工具二:awk( 二),awk脚本

    awk脚本 awk脚本是一个可执行的文件,常习惯以.awk命名. 结构: $test.awk #!/bin/awk -f #脚本系统中awk的位置BEGIN{} #脚本主体之前,执行些什么.该行内的语 ...

  2. 3 5的二维数组C语言程序,C语言及程序设计提高例程-33 二维数组元素的引用

    贺老师教学链接  C语言及程序设计提高 本课讲解 输入输出二维数组元素 #include int main() { int s[3][5], i, j; printf("Input 3*5 ...

  3. linux awk命令详解(一) awk语法 awk运算 awk数组

    ===============================原文地址http://www.cnblogs.com/emanlee/p/3327576.html 好文章!!! Table of Con ...

  4. qml学习笔记(二):可视化元素基类Item详解(上半场anchors等等)

    原博主博客地址:http://blog.csdn.net/qq21497936 本文章博客地址:http://blog.csdn.net/qq21497936/article/details/7851 ...

  5. BT源代码学习心得(二):程序运行参数的获取 -- 转贴自 wolfenstein (NeverSayNever)

    BT源代码学习心得(二):程序运行参数的获取 发信人: wolfenstein (NeverSayNever), 个人文集 标  题: BT源代码学习心得(二):程序运行参数的获取 发信站: 水木社区 ...

  6. awk(4)-awk介绍

    1介绍 1.1 特点:awk是一种编程语言,可以直接运行不用提前编译:有内建的pipe 功能,可以将处理中数据传送给shell 处理,再将shell 处理结果传回awk,pipe让awk 能容易的使用 ...

  7. 1. awk基础,awk介绍,awk基本语法,直接使用action,打印列,初识列和行,\$0、\$NF、NF,基础示例,begin模式,end模式

    文章目录 前言 awk介绍 awk基本语法 直接使用action 打印列 初识列和行 \$0.\$NF.NF 基础示例 初识模式(begin end) 总结 友情链接 前言 本小节是awk基础入门课程 ...

  8. C语言二维数组元素的多种表示方法小结

    C语言二维数组元素的多种表示方法小结 昨天,一个小可爱问我,为何函数中,数组可以改变主函数中的值,比如b[i],就可以改原来数组中的值.其实b[i] 等价于 *(b + i)也是通过地址间接更改的,小 ...

  9. linux awk入门,awk入门应用

    awk概述 awk是一种编程语言,用于在linux/unix下对文本和数据进行处理.数据可以来自标准输入.一个或多个文件,或其它命令的输出.它支持用户自定义函数和动态正则表达式等先进功能,是linux ...

最新文章

  1. Win7无法安装程序提示Installer integrity check has failed的解决方法
  2. php获取显示图书数据,php基于dom实现读取图书xml格式数据的方法
  3. python中匿名函数的作用_什么是Python中的匿名函数
  4. Android倒计时案例展示
  5. Linux手动释放缓存的方法
  6. oracle querytimeout,聊聊pg jdbc的queryTimeout及next方法
  7. 洛谷——P1035 [NOIP2002 普及组] 级数求和
  8. C# winform 模拟选中并点击某一行DataGridView数据
  9. DLL系列6.函数转发器
  10. 关于Bluefish
  11. 电脑重装:微PE工具箱重装win10系统
  12. js中怎样把ASCII码中的字符与十进制的数相互转换-学习笔记
  13. Android 实现推送功能
  14. PCIE TLP 写中断
  15. 龙年新作:水印文字添加工具源码摘要
  16. MalformedJsonException: JSON forbids octal prefixes
  17. 关于结构体的内存对齐,以及如何计算
  18. 宾馆客户管理系统数据库java_JAVA连接数据库酒店管理系统.docx
  19. Bugku CTF-web12本地管理员
  20. 一文读懂resource.arsc文件结构

热门文章

  1. window 安装 pymysql
  2. Centos7安装cuda10.1
  3. ffmpeg命令详细说明
  4. jQuery取id的值的方法
  5. svn 合并分支 idea
  6. UNIX常用命令(C站最全,一文通关)
  7. 【pytorch】yolov4 实现对蛾子数据集的识别 以及 对蛾子图片二值化处理 实现 自动打标签标注。(本文重点在自动实现将图片转化为voc数据集)
  8. 【IOS】Object-C 中的Selector 概念
  9. wifi 小程序 透传_微信小程序一键连wifi
  10. 华为机试2021答案