105
"abc"
if ($0 ~ /barfly/ || $0 ~ /camelot/)
print "found"
awk作为一个编程语言,变量的支持那是必须的啊。
[root@centos74 test]$ awk -v a="test" 'BEGIN{print a}'
test
自定的变量可以使用命令行方式, 也是可以在BEGIN里面去定义。
awk对算数的支持也是每常完美的
[root@centos74 test]$ vim grades
[root@centos74 test]$ cat grades
Pat 100 97 58
Sandy 84 72 93
Chris 72 92 89
[root@centos74 test]$ awk '{sum=$2+$3+$3; avg=sum/3; print $1,avg}' grades
Pat 98
Sandy 76
Chris 85.3333
字符串主要是拼接, 直接写你要拼接的字符串即可。类似bash,不想python语言字符串莱娜姐需要连接符“+” 。
赋值是比较简单的 a="abd" 即可。
这个用法和c语言是一样的。使用`b++`即可完成b变量的自增,
awk中对真假的判定是这样的。 数值类如果是0 就是False, 非0就是True。字符串类如果是没有设置的话就是False,其他为True。
就是常用大于等于小于这些判定
Note
在字符串比较的时候,是按照首字母比较的,如果相同继续比较下一个字母,而非字母长度比较。
直接给样例
[root@centos74 test]$ awk 'BEGIN{a=-1;b= a <=0 ?(++a):a; print b}'
0
[root@centos74 test]$ awk 'BEGIN{a=1;b= a <=0 ?(++a):a; print b}'
1
如果添加成立,就执行第一个语句,否则第二个。 三目表达式是一个ifelse语句的简单写法。
awk 内置一些常用函数,比如计算字符串长度(length),去平方根的函数(sqrt)等等。