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"] }'










  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值