您的位置:首页 > 其它

<一>awk变量和运算符

2011-12-17 18:08 155 查看
一、变量

$0 完整的输入记录

FILENAME:当前文件名

FS:输入域分隔符(默认是一个空格)

OFS:输出文件分隔符(字段分隔符)(默认值是一个空格)

RS:输入记录分隔符(默认是一个换行符)

ORS:输出记录的分隔符(行分隔符)(默认值是一个换行符)

NF:当前记录的字段数

NR:当前文件的记录数

FNR:和NR类似,打开一个文件二者功能一样;只是针对多文件,新打开文件FNR遍从1累加记录

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

ARGC:命令行参数的数目;是一整数,代表命令行上除了选项-v, -f 及其对应的参数之外所有参数的个数

ARGV:包含命令行参数字符串数组,ARGV[0],ARGV[1]....ARGV[ARGC-1]分别代表命令行上相对应的参数

SUBSEP:数组下标分隔符(默认值是\034)

RSTART:由match函数所匹配的字符串的第一个位置

ENVIRON:环境变量关联数组

echo 10 100 1000 10000 |awk '{OFS="\n";print $1,$2,$3,$4}'

awk 'BEGIN{FS=":";ORS="\n"}{ print NR,$1,$NF}' /etc/passwd

awk 'BEGIN{FS=":";ORS="\n"}{ print NR,$1,$NF}' /etc/passwd

awk 'BEGIN{for(i=0;i<ARGC;i++) print ARGV[i]}' a.txt b.txt c.txt

awk 'BEGIN{for(i=0;i<ARGC;i++) print ARGV[i-1]}' a.txt b.txt c.txt

awk 'BEGIN{ay[1,10]=5;ay[10,2]=12}END{ for(k in ay) {split(k,idx,SUBSEP);print idx[1],idx[2],ay[idx[1],idx[2]];}}' /dev/null

二、运算符

1、赋值运算符:

= += -= *= /= %= ^= **= 赋值语句

2、逻辑运算符

|| 逻辑或

&& 逻辑与

3、正则运算符

~ ~! 匹配正则表达式和不匹配正则表达式

4、关系运算符

< <= > >= != == 关系运算符

5、算术运算符

+ - 加,减

* / & 乘,除与求余

+ - ! 一元加,减和逻辑非

^ *** 求幂

++ -- 增加或减少,作为前缀或后缀

6、其它运算符

$ 字段引用

空格 字符串连接符

?: C条件表达式

in 数组中是否存在某键值

运算符 用途

------------------

x^y x的y次幂

x**y 同上

x%y 计算x/y的余数(求模)

x+y x加y

x-y x减y

x*y x乘y

x/y x除y

-y 负y(y的开关符号);也称一目减

++y y加1后使用y(前置加)

y++ 使用y值后加1(后缀加)

--y y减1后使用y(前置减)

y-- 使用后y减1(后缀减)

x=y 将y的值赋给x

x+=y 将x+y的值赋给x

x-=y 将x-y的值赋给x

x*=y 将x*y的值赋给x

x/=y 将x/y的值赋给x x%=y 将x%y的值赋给x

x^=y 将x^y的值赋给x

x**=y 将x**y的值赋给x
本文出自 “Larry学习之路” 博客,请务必保留此出处http://5iqiong.blog.51cto.com/2999926/744318
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: