- 论坛徽章:
- 0
|
附录: \r\n\r\n1.awk的常规表达式元字符 \r\n\r\n\\ 换码序列 \r\n^ 在字符串的开头开始匹配 \r\n$ 在字符串的结尾开始匹配 \r\n. 与任何单个字符串匹配 \r\n[ABC] 与[]内的任一字符匹配 \r\n[A-Ca-c] 与A-C及a-c范围内的字符匹配(按字母表顺序) \r\n[^ABC] 与除[]内的所有字符以外的任一字符匹配 \r\nDesk|Chair 与Desk和Chair中的任一个匹配 \r\n[ABC][DEF] 关联。与A、B、C中的任一字符匹配,且其后要跟D、E、F中的任一个字符。 \r\n* 与A、B或C中任一个出现0次或多次的字符相匹配 \r\n+ 与A、B或C中任何一个出现1次或多次的字符相匹配 \r\n? 与一个空串或A、B或C在任何一个字符相匹配 \r\n(Blue|Black)berry 合并常规表达式,与Blueberry或Blackberry相匹配 \r\n\r\n2.awk算术运算符 \r\n\r\n运算符 用途 \r\n------------------ \r\nx^y x的y次幂 \r\nx**y 同上 \r\nx%y 计算x/y的余数(求模) \r\nx+y x加y \r\nx-y x减y \r\nx*y x乘y \r\nx/y x除y \r\n-y 负y(y的开关符号);也称一目减 \r\n++y y加1后使用y(前置加) \r\ny++ 使用y值后加1(后缀加) \r\n--y y减1后使用y(前置减) \r\ny-- 使用后y减1(后缀减) \r\nx=y 将y的值赋给x \r\nx+=y 将x+y的值赋给x \r\nx-=y 将x-y的值赋给x \r\nx*=y 将x*y的值赋给x \r\nx/=y 将x/y的值赋给x x%=y 将x%y的值赋给x \r\nx^=y 将x^y的值赋给x \r\nx**=y 将x**y的值赋给x \r\n\r\n3.awk允许的测试: \r\n\r\n操作符 含义 \r\n\r\nx==y x等于y \r\nx!=y x不等于y \r\nx>y x大于y \r\nx>=y x大于或等于y \r\nx<y x小于y \r\nx<=y x小于或等于y? \r\nx~re x匹配正则表达式re? \r\nx!~re x不匹配正则表达式re? \r\n\r\n4.awk的操作符(按优先级升序排列) \r\n\r\n= 、+=、 -=、 *= 、/= 、 %= \r\n|| \r\n&& \r\n> >= < <= == != ~ !~ \r\nxy (字符串连结,\'x\'\'y\'变成\"xy\") \r\n+ - \r\n* / % \r\n++ -- \r\n\r\n5.awk内置变量(预定义变量) \r\n\r\n说明:表中v项表示第一个支持变量的工具(下同):A=awk,N=nawk,P=POSIX awk,G=gawk \r\n\r\nV 变量 含义 缺省值 \r\n-------------------------------------------------------- \r\nN ARGC 命令行参数个数 \r\nG ARGIND 当前被处理文件的ARGV标志符 \r\nN ARGV 命令行参数数组 \r\nG CONVFMT 数字转换格式 %.6g \r\nP ENVIRON UNIX环境变量 \r\nN ERRNO UNIX系统错误消息 \r\nG FIELDWIDTHS 输入字段宽度的空白分隔字符串 \r\nA FILENAME 当前输入文件的名字 \r\nP FNR 当前记录数 \r\nA FS 输入字段分隔符 空格 \r\nG IGNORECASE 控制大小写敏感0(大小写敏感) \r\nA NF 当前记录中的字段个数 \r\nA NR 已经读出的记录数 \r\nA OFMT 数字的输出格式 %.6g \r\nA OFS 输出字段分隔符 空格 \r\nA ORS 输出的记录分隔符 新行 \r\nA RS 输入的记录他隔符 新行 \r\nN RSTART 被匹配函数匹配的字符串首 \r\nN RLENGTH 被匹配函数匹配的字符串长度 \r\nN SUBSEP 下标分隔符 \"\\034\" \r\n\r\n6.awk的内置函数 \r\n\r\nV 函数 用途或返回值 \r\n------------------------------------------------ \r\nN gsub(reg,string,target) 每次常规表达式reg匹配时替换target中的string \r\nN index(search,string) 返回string中search串的位置 \r\nA length(string) 求串string中的字符个数 \r\nN match(string,reg) 返回常规表达式reg匹配的string中的位置 \r\nN printf(format,variable) 格式化输出,按format提供的格式输出变量variable。 \r\nN split(string,store,delim) 根据分界符delim,分解string为store的数组元素 \r\nN sprintf(format,variable) 返回一个包含基于format的格式化数据,variables是要放到串中的数据 \r\nG strftime(format,timestamp) 返回一个基于format的日期或者时间串,timestmp是systime()函数返回的时间 \r\nN sub(reg,string,target) 第一次当常规表达式reg匹配,替换target串中的字符串 \r\nA substr(string,position,len) 返回一个以position开始len个字符的子串 \r\nP totower(string) 返回string中对应的小写字符 \r\nP toupper(string) 返回string中对应的大写字符 \r\nA atan(x,y) x的余切(弧度) \r\nN cos(x) x的余弦(弧度) \r\nA exp(x) e的x幂 \r\nA int(x) x的整数部分 \r\nA log(x) x的自然对数值 \r\nN rand() 0-1之间的随机数 \r\nN sin(x) x的正弦(弧度) \r\nA sqrt(x) x的平方根 \r\nA srand(x) 初始化随机数发生器。如果忽略x,则使用system() \r\nG system() 返回自1970年1月1日以来经过的时间(按秒计算) |
|