- 论坛徽章:
- 2
|
例一:
[chengmo@localhost ~]$ awk 'BEGIN{OFMT="%.3f";print 2/3,123.11111111;}'
0.667 123.111
例二:
echo 20100117054932 | awk 'BEGIN{FIELDWIDTHS="4 2 2 2 2 3"}{print $1"-"$2"-"$3,$4":"$5":"$6}'
2010-01-17 05:49:32
我发现一个问题:
例一中的action部分{OFMT="%.3f";print 2/3,123.11111111;}只有一个大括号,
例二中的action部分{FIELDWIDTHS="4 2 2 2 2 3"}{print $1"-"$2"-"$3,$4":"$5":"$6}是两个大括号。
我尝试把例一改为两个大括号,执行有问题:
[root@localhost ~]# awk 'BEGIN{OFMT="%.3f"}{print 2/3,123.11111111;}'
//首先获得空白行,回车后,才能获得第二行数据。
0.667 123.111
//这里同第一行的情况。需要回车。
0.667 123.111
0.667 123.111
我把例二改为如下执行:
[root@localhost ~]# echo 20100117054932 | awk 'BEGIN{FIELDWIDTHS="4 2 2 2 2 3";print $1"-"$2"-"$3,$4":"$5":"$6}'
-- ::
结果竟然是这个! 也即使说FIELDWIDTHS="4 2 2 2 2 3"没有生效。
都是awk的内置变量,为何OFMT不需要大括号,而FIELDWIDTHS需要使用大括号。
请指点一下,谢谢!
|
|