awk(二)awk程序元素
一 空白和注释:
(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程序元素相关推荐
- linux下字符串处理工具二:awk( 二),awk脚本
awk脚本 awk脚本是一个可执行的文件,常习惯以.awk命名. 结构: $test.awk #!/bin/awk -f #脚本系统中awk的位置BEGIN{} #脚本主体之前,执行些什么.该行内的语 ...
- 3 5的二维数组C语言程序,C语言及程序设计提高例程-33 二维数组元素的引用
贺老师教学链接 C语言及程序设计提高 本课讲解 输入输出二维数组元素 #include int main() { int s[3][5], i, j; printf("Input 3*5 ...
- linux awk命令详解(一) awk语法 awk运算 awk数组
===============================原文地址http://www.cnblogs.com/emanlee/p/3327576.html 好文章!!! Table of Con ...
- qml学习笔记(二):可视化元素基类Item详解(上半场anchors等等)
原博主博客地址:http://blog.csdn.net/qq21497936 本文章博客地址:http://blog.csdn.net/qq21497936/article/details/7851 ...
- BT源代码学习心得(二):程序运行参数的获取 -- 转贴自 wolfenstein (NeverSayNever)
BT源代码学习心得(二):程序运行参数的获取 发信人: wolfenstein (NeverSayNever), 个人文集 标 题: BT源代码学习心得(二):程序运行参数的获取 发信站: 水木社区 ...
- awk(4)-awk介绍
1介绍 1.1 特点:awk是一种编程语言,可以直接运行不用提前编译:有内建的pipe 功能,可以将处理中数据传送给shell 处理,再将shell 处理结果传回awk,pipe让awk 能容易的使用 ...
- 1. awk基础,awk介绍,awk基本语法,直接使用action,打印列,初识列和行,\$0、\$NF、NF,基础示例,begin模式,end模式
文章目录 前言 awk介绍 awk基本语法 直接使用action 打印列 初识列和行 \$0.\$NF.NF 基础示例 初识模式(begin end) 总结 友情链接 前言 本小节是awk基础入门课程 ...
- C语言二维数组元素的多种表示方法小结
C语言二维数组元素的多种表示方法小结 昨天,一个小可爱问我,为何函数中,数组可以改变主函数中的值,比如b[i],就可以改原来数组中的值.其实b[i] 等价于 *(b + i)也是通过地址间接更改的,小 ...
- linux awk入门,awk入门应用
awk概述 awk是一种编程语言,用于在linux/unix下对文本和数据进行处理.数据可以来自标准输入.一个或多个文件,或其它命令的输出.它支持用户自定义函数和动态正则表达式等先进功能,是linux ...
最新文章
- Win7无法安装程序提示Installer integrity check has failed的解决方法
- php获取显示图书数据,php基于dom实现读取图书xml格式数据的方法
- python中匿名函数的作用_什么是Python中的匿名函数
- Android倒计时案例展示
- Linux手动释放缓存的方法
- oracle querytimeout,聊聊pg jdbc的queryTimeout及next方法
- 洛谷——P1035 [NOIP2002 普及组] 级数求和
- C# winform 模拟选中并点击某一行DataGridView数据
- DLL系列6.函数转发器
- 关于Bluefish
- 电脑重装:微PE工具箱重装win10系统
- js中怎样把ASCII码中的字符与十进制的数相互转换-学习笔记
- Android 实现推送功能
- PCIE TLP 写中断
- 龙年新作:水印文字添加工具源码摘要
- MalformedJsonException: JSON forbids octal prefixes
- 关于结构体的内存对齐,以及如何计算
- 宾馆客户管理系统数据库java_JAVA连接数据库酒店管理系统.docx
- Bugku CTF-web12本地管理员
- 一文读懂resource.arsc文件结构